- 数组是相同类型变量的有序集合,例如:int a[5];
- a代表数组第一个元素的起始地址
- 有5个int类型的数据,且是5个连续的内存空间。
- 这个20个字节的空间的名字叫a,a[0],a[1]都是数组中的元素,数组中的元素没有名字
- 数组的大小
- 数组在一片连续的内存空间中存储元素
- 数组元素的个数可以显式或隐式指定:int a[5] = {2,3}; int b[] = {1,2};
1 #include <stdio.h> 2 int main() 3 { 4 int a[5] = {1,2}; 5 int b[] = { 3, 4 }; 6 printf("a[2]=%d\n",a[2]); 7 printf("a[3]=%d\n",a[3]); 8 printf("sizeof(a)=%d\n",sizeof(a)); 9 printf("sizeof(b)=%d\n", sizeof(b)); 10 printf("数组a的元素个数=%d\n",sizeof(a)/sizeof(a[0])); 11 printf("数组b的元素个数=%d\n", sizeof(b) / sizeof(b[0])); 12 printf("&a=%p\n",&a); 13 printf("&a[0]=%p\n", &a[0]); 14 printf("a=%p\n",a); 15 return 0; 16 } 17 运行结果: 18 a[2]=0 19 a[3]=0 20 sizeof(a)=20 21 sizeof(b)=8 22 数组a的元素个数=5 23 数组b的元素个数=2 24 &a=004FF9F4 25 &a[0]=004FF9F4 26 a=004FF9F4 27 请按任意键继续. . .
- 数组地址与数组名
- 数组名代表数组首元素的地址
- 数组的地址需要用取地址符&才能得到
- 数组首元素的地址和数组的地址相同
- 数组首元素的地址和数组的地址是两个不同的概念
- 数组名的盲点
- 数组名可以看做一个常量指针
- 数组名“指向”的是内存中数组首元素的起始地址
- 数组名不包含数组的长度信息
- 在表达式中,数组名只能作为常量使用
- 只有在下列场合中数组名不能看做常量指针:数组名作为sizeof操作符的参数,数组名作为&运算符的参数
1 #include <stdio.h> 2 int main() 3 { 4 int a[5] = { 0 }; 5 int b[2]; 6 int *p = NULL; 7 p = a; 8 printf("a=%p\n",a); 9 printf("p=%p\n",p); 10 printf("&p=%p\n",&p); 11 printf("sizeof(a)=%d\n",sizeof(a)); 12 printf("sizeof(p)=%d\n", sizeof(p)); 13 return 0; 14 } 15 运行结果: 16 a=004FFBD4 17 p=004FFBD4 18 &p=004FFBB8 19 sizeof(a)=20 20 sizeof(p)=4 21 请按任意键继续. . .
原文地址:https://www.cnblogs.com/chengeputongren/p/12176144.html
时间: 2024-10-12 15:23:05