首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
32位系统,函数void Func(char str[100
[单选题]
32位系统,函数void Func(char str[100]){}中sizeof(str)的大小为()
4
5
6
7
查看答案及解析
添加笔记
求解答(2)
邀请回答
收藏(209)
分享
7个回答
添加回答
38
辉小歌
数组传参时 会退化成指针。
话说 有个100的选项还有点迷惑作用,这连有都没有
发表于 2020-09-21 21:12:46
回复(0)
20
Kumori
指针储存地址大小与int相同为四个字节
发表于 2018-12-12 17:06:01
回复(0)
6
牛客259348882号
对于函数参数列表中的以数组类型书写的形式参数,编译器把其解释为普通
的指针类型,即char *str
发表于 2020-08-05 22:53:07
回复(0)
4
OneToSevenBillions
注意与sizeof(str)本身性质区分:此处并非是求整个str数组的大小(即答案100的误区)
p.s 数组名是首元素的大小地址:(只有两个例外)1.sizeof(数组名) - 数组名为整个地址
2. & 数组名 - 数组名表示整个数组
对于定义函数中出现以数组形式的形式参数,编译器会把它解释成相对应类型的指针
(数组传参时候,会退化成指针)
此处为char *,又考虑在32位系统,故其指针大小为4.
发表于 2022-06-18 09:46:22
回复(0)
1
学成1
在32位系统中,指针的大小为4字节。因此,函数void Func(char str[100]){}中sizeof(str)的大小为4字节,而不是100字节。这是因为在函数中,数组参数会被隐式地转换为指针类型,所以sizeof(str)实际上是指针的大小。
发表于 2023-06-18 23:17:47
回复(0)
0
愤怒的追梦人在敲键盘
仅在以下3种情况中,数组不会退化成指针
使用sizeof(a)的时候,所以上面sizeof(a)的结果为6字节
对数组名取地址操作:&a。&a的类型为pointer to array of 6 chars,而对字符串指针取地址结果为pointer to pointer to char.
使用字符串初始化数组的时候也不会退化。
发表于 2024-02-22 22:32:46
回复(0)
0
江南_烟雨_
对于函数参数列表中的以数组类型书写的形式参数,编译器把其解释为普通
的指针类型,即char *str
发表于 2023-02-16 21:56:55
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
C++工程师
快手
C语言
2019
上传者:
小小
难度:
7条回答
209收藏
2212浏览
热门推荐
相关试题
若要尽可能地完成对实数数组的排序,...
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
PHP工程师
测试工程师
快手
2019
评论
(4)
假定指针变量 p 定义为 “int...
360集团
C++
C语言
评论
(36)
来自
360公司2014校招笔试卷
class A; class B;...
360集团
C++
C语言
评论
(18)
来自
360公司2014校招笔试卷
《拳皇97》最后BOSS是谁?
游戏常识
评论
(1)
《魔兽世界》中,下列不属于玩家可以...
游戏常识
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题