#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string>
int main()
{
int a[3][4] = { 0 };
printf("%d\n", sizeof(a)); //48
printf("%d\n", sizeof(a[0][0])); //4
printf("%d\n", sizeof(a[0])); /*a[0]相当于第一行作为一维数组的数组名,
sizeof(arr[0])把数组名单独放在sizeof()内,计算的是第一行的大小,//16 */
printf("%d\n", sizeof(a[0] + 1));/*a[0]是第一行的数组名,数组名此时是首元素的地址,
a[0]是第一行第一个元素的地址,所以a[0]+1是第一行第二个元素的地址,//4/8 */
printf("%d\n", sizeof(*(a[0] + 1))); //*a[0]+1)是第一行第二个元素,//4
printf("%d\n", sizeof(a + 1)); //此时a是第一行首元素的地址,a+1是第二行的地址,//4
printf("%d\n", sizeof(*(a + 1))); //计算的第二行的大小,//16
printf("%d\n", sizeof(&a[0] + 1)); //第二行的地址,//4
printf("%d\n", sizeof(*(&a[0] + 1))); //第二行的大小,//16
printf("%d\n", sizeof(*a)); //第一行的大小,//16
printf("%d\n", sizeof(a[3])); //16
return 0;
}
09-21
6022
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
08-08
1385
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
08-17