首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
32位系统,函数void Func(char str[100
[单选题]
32位系统,函数void Func(char str[100]){}中sizeof(str)的大小为()
4
5
6
7
查看正确选项
添加笔记
求解答(2)
邀请回答
收藏(214)
分享
7个回答
添加回答
39
辉小歌
数组传参时 会退化成指针。
话说 有个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条回答
214收藏
2229浏览
热门推荐
相关试题
以下关于非对称加密的说法错误的是
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
PHP工程师
测试工程师
快手
2019
评论
(1)
假定指针变量 p 定义为 “int...
360集团
C++
C语言
评论
(36)
来自
360公司2014校招笔试卷
(verbal)最近的研究显示,许...
言语理解与表达
2019
普华永道
人力资源
审计
税务服务
风险管理
管理咨询
行政管理
评论
(2)
来自
职能类模拟题14
属于组合逻辑电路是()。
数字电路
评论
(1)
如果通过这次面试我们单位录用了你,...
岗位认知
自我认知
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题