我以这种方式将数组传递给函数,不是因为我非常喜欢它,而是因为它在任务中是必需的。
在函数中,数组变小了3个字节,告诉我是什么原因
#include <stdio.h>
char* foo(char* in)
{
printf("%i\n", sizeof(in)); // 8 байт
}
int main()
{
char message[11] = "hello world";
printf("%i\n", sizeof(SIZE)); // 11 байт
foo(message);
return 0;
}
第一的 -
不指定大小,编译器无论如何都会计算它。特别是因为 11 个字符缺少一个空终止字符......
第二,
这是什么
SIZE?第三,
您在询问指针的大小
char*- 在 64 位系统上它是 8 个字节。要找出 C 字符串的长度,您需要询问