知名通信公司笔试题,int** a[3][4]占用多少个内存单元???

来源:百度知道 编辑:UC知道 时间:2024/05/31 15:52:31
简单解释,谢谢!

看起来很复杂 其实很简单
唬人的
首先 你要明白在32位机上 不管是什么指针都是4个字节,2级指针也是
又因为它是一个2维指针3 * 4 * 4 == 48个字节
就这么简单
或者你可以用
sizeof(a)算

首先确定系统类型,然后才能确定指针变量占用多大内存。假设为32位系统。
一共有3*4=12个数据单元,每一个单元为指针类型,则占用 12*4=48 bytes

3*4个指针的指针。
12*4....32位机器

3*4*sizeof(int **)
32位机器上应该是48字节吧

48个

#include<stdio.h>

void main()
{
int** a[3][4];
printf("%d",sizeof(a));
}
输出结果为48

就是一个指针
= sizeof(int) 32位机器上4个字节