首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
(C++部分)请问下列代码的输出是多少()
[单选题]
(C++部分)请问下列代码的输出是多少()
7
3
8
4
查看答案及解析
添加笔记
求解答(16)
邀请回答
收藏(396)
分享
7个回答
添加回答
3
睁眼就要学
<p>把m显性转化成三行四列的数组并将首元素的地址赋给指向三行四列二维数组的指针p?</p><p><br></p>
发表于 2020-12-18 16:35:32
回复(0)
16
牛客111055632号
数组指针,说明指针指向的是一个数组,而int(*p)[4]说明p指向的是一行含有四个元素的二维数组,而(int(*)[4])m是将m的类型由int*强转为int(*)[4]类型,所以根据m数组的元素个数,p就可以理解为指向了一个三行四列的二维数组的指针啦
发表于 2022-10-03 11:10:50
回复(1)
5
fangxiaox
int(*p)[4]=(int(*)[4])m; 在p中存放的数据按照4个一组存放,通过m给p赋值后p指向的地址中存放的数据格式为:{(1,2,3,4),(5,6,7,8),(9,0)},相当于二维数组: 1 2 3 4 5 6 7 8 9 0 所以输出p[1][2]就是第二行第三列的值 7
发表于 2021-03-05 17:06:55
回复(0)
1
牛客363438018号
只是一个三行四列的矩阵。 P一二选取的就是第二行第三列的数。七。
发表于 2020-08-26 16:25:48
回复(2)
0
你今天午睡了吗
1. 分析数组 m 的内存存储
数组 m 初始化为 int m[] = {1,2,3,4,5,6,7,8,9,0};,在内存中是
连续存储
的,元素顺序为:
m[0]=1, m[1]=2, m[2]=3, m[3]=4, m[4]=5, m[5]=6, m[6]=7, m[7]=8, m[8]=9, m[9]=0。
2. 分析指针 p 的类型与含义
int (*p)[4] 表示:p 是一个
指向 “包含 4 个 int 的数组” 的指针
。
代码中 p = (int (*)[4])m; 是将
一维数组 m 的首地址
,强制转换为 “指向每行 4 个 int 的二维数组指针”。这相当于把一维数组 m
逻辑上视为 “每行有 4 个元素的二维数组”
。
3. 计算 p[1][2] 对应的元素
将 m 视为 “每行 4 个元素的二维数组” 后:
p[0] 对应
第 0 行
,包含元素 m[0]~m[3](即 1,2,3,4);
p[1] 对应
第 1 行
,包含元素 m[4]~m[7](即 5,6,7,8);
p[1][2] 表示 “第 1 行的第 2 列元素”(列索引从 0 开始),即 m[4 + 2] = m[6]。
4. 确定 m[6] 的值
由数组初始化可知,m[6] = 7。
因此,代码的输出是
7
。
以上内容 复制来源于豆包
发表于 2025-10-06 23:27:39
回复(0)
0
牛客157878828号
???确定这个解析属于这题吗
发表于 2025-08-28 11:58:06
回复(0)
0
0x400255
int(*)[4]这一部分怎么看
发表于 2022-12-24 15:49:56
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
C++
来自:
唯品会2018校招实时...
上传者:
小小
难度:
7条回答
396收藏
2998浏览
热门推荐
相关试题
运行 ldd hello 可以得到...
百度
C++
评论
(3)
(C++部分)c++定义一个空的类...
C++
评论
(5)
来自
唯品会2018校招实时开...
(Linux部分)Linux文件权...
评论
(2)
来自
唯品会2018校招实时开...
(C++部分)声明语句为int a...
C++
评论
(6)
来自
唯品会2018校招实时开...
如果消费者收入增加引起野营设备需求...
经济学
评论
(4)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题