为了账号安全,请及时绑定邮箱和手机立即绑定

sizeof(str)应该是100吧?

sizeof(str)应该是100吧?

PHP C
GCT1015 2023-01-02 21:17:27
void Func ( char str[100] ) {  sizeof( str ) = 4 } 为什么是等于4,如果没有函数直接char str[100];
查看完整描述

3 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

char 类型的每个数据占一个字节,数组的话就乘以它的长度,这道题应该是100

查看完整回答
反对 回复 2023-01-06
?
Qyouu

TA贡献1786条经验 获得超11个赞

因为是Func()是一个函数,所有传递只是str数组的首地址。

查看完整回答
反对 回复 2023-01-06
?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

在C/C++里数组作为参数时传递的实际上是指向数组第一个元素的指针,因此sizeof(str)返回的是指针的大小,即4。

注意以下三种形式的参数是完全等价的:


void Func(char str[100]);void Func(char str[]);void Func(char *str);

因为传递的本质上是指针,所以维数也是不必要的。以下调用是完全合法的:


void Func(char str[100]);char ch[10];Func(ch);



查看完整回答
反对 回复 2023-01-06
  • 3 回答
  • 0 关注
  • 220 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信