void Func ( char str[100] ) { sizeof( str ) = 4 } 为什么是等于4,如果没有函数直接char str[100];
3 回答

泛舟湖上清波郎朗
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); |
- 3 回答
- 0 关注
- 280 浏览
添加回答
举报
0/150
提交
取消