一维数组
数组定义格式与注意事项
1.格式 数组类型 数组的名字[长度] = { 值1,值2,值3,......}; 值是常量
2.数组里存放的应为同一类型的数据,访问数组用下标的形式访问,数组的下标是从0开始的
3.数组必须不能越界
4.数组的长度必须指定,要么直接指定长度,如果不直接给定长度,就必须在数组定义的时候进行赋值,这时候数组的个数为几,长度就为几
5.数组名代表数组首元素的地址
定义一个数组
第一种定义方式
int array[5]={}; //数组的长度位5,初值未给定,默认为0
printf("array1= %d,array2 = %d,array3 = %d\n",array[0],array[1],array[2]);
//结果:array1= 0,array2 = 0,array3 = 0
第二种定义方式
[]中不写长度 其数组的长度由初始值来决定
int array2[] = {1,2,30000000,'c'}; //字符是特殊的整形
printf("%d\n",array2[2]); //结果:30000000
冒泡排序
int array8 [5]= {3,4,7,5,1};//升序
//外层循环代表走的趟数
for ( int i=1; i<5; i++)
{ //内层循环代表交换的次数
for (int j=1; j<=5-i; j++) {
if (array8[j-1]>array8[j]) {
int temp =array8[j-1];
array8[j-1] = array8[j];
array8[j]=temp;
}
}
}
for (int i=0; i<5; i++) {
printf("%d\t",array8[i]);
}
//结果:1 3 4 5 7
字符数组
字符数组用来存放字符
char name[5]= {'a','b','c','d','e'};
printf("%s\n",name); //结果:abcde�
printf("%lu\n",strlen(str));//结果:6
//strlen 计算字符数组长度 遇到\0就结束
//字符串拷贝
char str1 [100] = "xiaoqiang ";
char str2 [ ]= "ma chao hong";
strcpy(str1,str2); //str1 空间一定要 >= str2
printf("%s\n",str1); //str1 =ma chao hong
//字符串拼接
strcat(str1, str2); //str1 空间一定要 》=str2 + str1
printf("%s\n",str1); //str1 =ma chao hongma chao hong
//字符串比较
int res = strcmp(str1, str2);
printf("%d\n",res); //res =109 C语言中m的ascll编码是109