今天在敲C语言代码的时候还总是用java的习惯去敲~~
普通数组
一维数组
初始化
可以不初始化
int i[5];
可以初始化:
int i[5]={1,2,3,4,5};
可以部分初始化:
int i[5]={1,2};
全部为零:
int i[5]={0};
不写[]中的下标总数:
int i[]={1,2,3,4,5};
注:下标依旧从零开始
冒泡排序
可以更好的理解使用数组
char cs[5]={4,1,3,2,5};
int i=0;
int t;
for(;i<5;i++){
int j=i;
for(;j<5;j++){
if(cs[i]>cs[j]){
t=cs[i];
cs[i]=cs[j];
cs[j]=t;
}
}
}
规律(尽量自己去总结)
看第二次循环不再使用哪个变量cs[i]或者cs[j],然后根据大小,算出第一个cs[0]是最大或最小。例如上述代码:i=0循环一次后不再使用,所以第一个固定的是cs[0],根据cs[i]>cs[j]即交换数据,然后cs[0]会留下一个最小的。以此类推。
二维数组
一维数组的升级版。二维数组的使用频率非常少,所以理解即可。
能把一维数组char cs[]={4,10,30,2,5,23,41,32,12,2,21,12,41,32,12}转换成二维数组
char css[3][5]={ {4,10,30},{2,5,23},{41,32,12},{2,21,12},{41,32,12}}的示例能理解的话,应该就差不多了
示例代码
char cs[]={4,10,30,2,5,23,41,32,12,2,21,12,41,32,12};
char css[3][5];
int i=0;
int j=0;
int x=0;
while(i<15){
css[x][j]=cs[i];
if(j==5){
x++;
j=0;
}
i++;
j++;
}
字符数组(也可以当做字符串)
特殊的初始化方式:
当然普通的数组初始化方式也可以用
char str[6]=”hello”;//必须要比字符串多一个位置,来放结束符 \0
char str[]=”hello”;//这个方法最简单
输出字符串
printf(“%s”,str);//输出使用特别的占位符
结束符的使用
char str[6]=”hello”;
str[2]=0;
//遇到0就结束,所以只输出he
转义字符的含义
直接输出数组名,则输出的是数组第一元素的地址