数组
数组
数组是一组相同类型元素的集合。
1.数组的创建
数组的长度参数必须为常量或常量表达式。
char arry[10];//正确
int n=10;
char arry2[n];//错误
2.数组的初始化
1.完全初始化
char arry[4]="abcd";
2.不完全初始化
char arry[10]="abcd";//剩余元素默认为0
3.不指定大小
char arry1[]="abcd";//字符串,字符串后才有结束符\0
char arry2[]={'a','b','c','d'}//5个元素,\0
sizeof(arry1[]);//4
sizeof(arry2[]);//5
strlen(arry1[]);//4
strlen(arry2[]);//随机值
3.数组大小
char arry1[] = { 'a','b','c','d' };//数组
printf("arry[1]:%d\n", sizeof(arry1));//4
printf("arry[1]:%d\n", strlen(arry1));//15
char arry3[] = "abcd";//字符串
printf("arry[3]:%d\n", sizeof(arry3));//5
printf("arry[3]:%d\n", strlen(arry3));//4
char arry2[4] = { 'a','b','c','d' };
printf("arry[2]:%d\n", sizeof(arry2));//4
printf("arry[2]:%d\n", strlen(arry2));//16
char arry6[4] = "abcd";
printf("arry[6]:%d\n", sizeof(arry6));//4
printf("arry[6]:%d\n", strlen(arry6));//28
char arry4[10] = { 'a','b','c','d' };
printf("arry[4]:%d\n", sizeof(arry4));//10
printf("arry[4]:%d\n", strlen(arry4));//4
char arry5[10] = "abcd";
printf("arry[5]:%d\n", sizeof(arry5));//10
printf("arry[5]:%d\n", strlen(arry5));//4
int arry7[] = { 1,2,3,4,5 };
printf("arry[7]:%d\n", sizeof(arry7));//20=4*5
printf("arry[7]:%d\n", strlen(arry7));//1strlen只能求字符串长度
int arry8[10] = { 1,2,3,4,5 };
printf("arry[8]:%d\n", sizeof(arry8));//40
printf("arry[8]:%d\n", strlen(arry8));//1
4.一维数组
int array[5]={1,2,3,4,5};
int size=sizeof(array)/sizeof(array[0]);//数组的大小
for(int i=0;i<size;i++){
printf("%c\t",array[i]);
}
4.1数组在内存中的情况
数组在内存中是连续存放的
int array[5] = { 1,2,3,4,5 };
int size = sizeof(array) / sizeof(array[0]);
for (int i = 0; i < size; i++) {
printf("%p\n", &array[i]);
}
//十六进制,间隔为4
00DCFBA4
00DCFBA8
00DCFBAC
00DCFBB0
00DCFBB4

浙公网安备 33010602011771号