数组

数组

数组是一组相同类型元素的集合。

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
posted @ 2022-06-16 22:04  青眼高歌  阅读(70)  评论(0)    收藏  举报