如图,创建了一个二维数组,a打印出来是占用8个字节。说明占用了2个int对象的地址,但我打印出来的地址和a[0]和a[0][0]一样,是不是因为它是多维数组,占用了两个地址,而这个两个地址刚好相等,请求说明一下,
这几行简单的代码中为什么a是8个字节
如图,创建了一个二维数组,a打印出来是占用8个字节。说明占用了2个int对象的地址,但我打印出来的地址和a[0]和a[0][0]一样,是不是因为它是多维数组,占用了两个地址,而这个两个地址刚好相等,请求说明一下,
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- include_iostream_ 2021-10-31 11:02关注
*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)。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 python的qt5界面
- ¥15 无线电能传输系统MATLAB仿真问题
- ¥50 如何用脚本实现输入法的热键设置
- ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
- ¥30 深度学习,前后端连接
- ¥15 孟德尔随机化结果不一致
- ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
- ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
- ¥15 谁有desed数据集呀
- ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100