数组是一组有序数据的集合。用一个数组名和下标确定数组中的元素。数组中的每一个元素都属于同一个数据类型。
例:对10个数组元素依次赋值为0,1,2,3,4,5,6,7,8,9.要求按逆序输出。
#include
int main(){
int i,a[10];
for(i=0;i<=9;i++)
a[i]=i;
for(i=9;i>=0;i--)
printf("%d\n",a[i]);
printf("\n");
return 0;
}
例:用数组处理Fibonacci数列问题
#include
int main(){
int i;
int f[20]={1,1};
for(i=2;i<20;i++)
f[i]=f[i-2]+f[i-1];
for(i=0;i<20;i++){
if(i%5==0)printf("\n");
printf("%12d",f[i]);
}
printf("\n");
return 0;
}
二维数组表示形式为:数组名[下标][下标]
例:输出一个已知的字符串
#include
int main(){
char c[15]={'I','','a','m','','a','','s','t','u','d','e','n','t','.'};
int i;
for(i=0;i<15;i++)
printf("%c",c[i]);
printf("\n");
return 0;
}
例:输出一个菱形图
#include
int main(){
char lingxing[][5]={{'','','*},{'','*','','*'},{'*','','','','*'},{'','*','','*'},{'','','*}};
int i,j;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
printf("%c",lingxing[i][j]);
printf("\n");
}
return 0;
字符串:
puts函数:输出字符串的函数,一般形式为:puts,作用是将一个字符串输出到终端。
gets函数:输入字符串的函数,一般形式为:gets,作用是输入一个字符串到字符数组。
strcpy:strcpy(字符数组1,字符串2),作用是将字符串2复制到字符数组1中去。
strcmp函数:字符串比较函数,一般形式为:strcmp(字符串1,字符串2),作用是比较字符串1和字符串2。
strlen函数:测字符串长度的函数,一般形式为:strlen(字符数组),函数的值为字符串中的实际长度。
(%A)具体格式如下:
%d |
有符号十进制整数 |
%i |
有符号十进制整数 |
%o |
无符号八进制整数 |
%u |
无符号十进制整数 |
%x |
无符号十六进制数字 |
%X |
无符号十六进制数字 |
%c |
单个字符 |
%s |
字符串 |
数组的赋值:
数组a[n]只赋值a[0]-a[n-1]项,a[n]系统不会填补为零
#include
int main(){
int a[2]={1,2};
for(int i=0;i<2;i++){
a[i]=i;
}
printf("%d\n%d\n",a[0],a[1]);
return 0;
}
指针变量的使用:
//声明一个指针变量,指向变量a的地址
int *pa;
//通过取地址符&,获取a的地址,赋值给指针变量
//通过间接寻址符,获取指针指向的内容
printf("%d",*pa)
多维数组的地址:
int num[2][2]={
{1,2},{2,3}
}
多维数组的指针:
int num[5]={2,3,4,5,6};
int *p=nums;
函数参数为指针:
void swap(int *x,int *y);
void main(){
int x=20,y=20;
swap(&x,&y);
printf("x=%d,y=%d",x,y);
}
void swap(int *x,in *y){
int t;
t=*x;
*x=*y;
*y=t;
}
数组倒置
void invert(int *a){
int LEN=length(a);
int b;
for(int i=1;i
输出杨辉三角形前十行
#include
int main(void){
int a[10][10];
int b=0;
for(int i=0;i<10;i++){
b++;
for(int j=0;j0&&j=3){
a[i][j]=a[i-1][j]+a[i-1][j-1];
}
printf("%5d",a[i][j]);
}
printf("\n");
}
return 0;
}
重难点:
1.int *p中,*p和p的差别:*p是数值,p是地址。
2.*p++是地址会变化:取当前值,然后再移动地址。
(*p)++是数值会要变化:取当前值,然后再使数值增加1。
3.二级指针:
*p:一级指针:存放变量的地址。
**p:存放一级指针的地址。
4.数组名:数组名不可以自加,他是常量名。
函数名:表示该函数的入口地址。
字符串常量名:表示第一个字符的地址。