sizeof(str)应该是100吧?

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

GCT1015
浏览 282回答 3
3回答

隔江千里

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

Qyouu

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

泛舟湖上清波郎朗

在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);
打开App,查看更多内容
随时随地看视频慕课网APP