Void func(char str[100]){ Sizeof(str) = ?
时间: 2024-04-18 14:33:38 浏览: 16
函数参数中的字符数组 `str` 的大小是固定为 100。然而,在函数内部使用 `sizeof` 运算符获取数组大小时,它返回的是整个数组的字节大小,而不是字符串的长度。因此,`sizeof(str)` 的结果将是 `100 * sizeof(char)`,其中 `sizeof(char)` 取决于编译器,通常为 1 字节。所以,`sizeof(str)` 的结果将是 100 字节。
相关问题
void Func ( char str[100]) { sizeof( str ) = }
在函数内部,使用 sizeof(str) 会返回数组指针的大小,而不是数组的大小。因为在函数参数中,数组名被转换为指向数组首元素的指针,所以 sizeof(str) 就等同于 sizeof(char*),即指针的大小。如果要获取数组的大小,可以使用 strlen(str) 或者 sizeof(str)/sizeof(str[0])。
为什么该代码输出结果为8;void Func(char str[100]){ cout<<sizeof(str)<<endl;
该代码输出结果为8,是因为在函数中传递的字符数组实际上是一个指针,指向数组的第一个元素。因此,sizeof(str)返回的是指针的大小,通常为8个字节(64位系统)。即使数组的大小为100,但在函数中传递时,它被视为一个指向字符的指针,因此sizeof(str)返回的是指针的大小,而不是数组的大小。