*a在这里已经不是求a占用的字节数了。
看这段代码:
int a[3][2];
printf("%s\n", typeid(*a).name());
需要头文件typeinfo才能运行。由于MinGW输出的是mangle后的名字,我选用MSVC执行编译。
输出结果是int[2]。换言之,*a的真实类型是具有两个元素的int数组,到这里,答案已经非常明显了吧。int[2]的长度当然是8字节。
要a本身的长度,需要用sizeof(a)。
这里的a是 int(*)[2]类型,*a的类型就是int[2],2个int就是8字节了,当然int也不一定是4字节。64bit环境中一个int就是8字节。(觉得好的话,麻烦关注一下我的内容哦!)