#define _CRT_SECURE_NO_WARNINGS 1
//数组名确实能表示首元素的地址
//但是有两个例外:
//1.sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小,单位是字节
//2.&数组名,这里的数组名表示整个数组,取出的是整个数组的地址
#include<stdio.h>
int main()
{
int a[10] = {0};
int n = sizeof(a);
printf("%p\n", a);//输出数组名的地址
printf("%p\n", a + 1);
printf("------------------\n");
printf("%p\n", &a[0]);//输出数组中首元素的地址
printf("%p\n", &a[0] + 1);
printf("------------------\n");
printf("%p\n", &a);//输出数组的地址
printf("%p\n", &a + 1);
/*printf("%d\n", n);*/
return 0;
}
//输出结果如下
//010FFE94
//010FFE98
//------------------
//010FFE94
//010FFE98
//------------------
//010FFE94
//010FFEBC
#include<stdio.h>
int main()
{
int a[3][4];
printf("%d\n", sizeof(a) / sizeof(a[0]));//求出二维数组的行数
printf("%d\n", sizeof(a) / sizeof(a[0][0]));//求出二维数组中的元素个数
printf("%d\n", sizeof(a[0]) / sizeof(a[0][0]));//求出二维数组的列数
return 0;
}
//输出结果如下
//3
//12
//4
一维数组和二维数组的数组名与数组元素的关系
最新推荐文章于 2024-08-09 20:36:57 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)