Kev*_* Hu 5 c arrays character sizeof
为什么我从以下代码获得结果6,然后是8?我搜索了帖子,但无法找到我的问题的完全匹配.谢谢.
#include <stdio.h>
void getSize(const char *str)
{
printf("%d\n", sizeof(str)/sizeof(char));
}
int main()
{
char str[]="hello";
printf("%d\n", sizeof(str)/sizeof(char));
getSize(str);
}
Run Code Online (Sandbox Code Playgroud)
在你的getSize()函数中,str是一个指针.因此sizeof(str)返回指针的大小.(在这种情况下是8个字节)
在你的main()函数中,str是一个数组.因此sizeof(str)返回数组的大小.
这是数组和指针之间的细微差别之一.