sizeof表示字符数组

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)

Mys*_*ial 7

在你的getSize()函数中,str是一个指针.因此sizeof(str)返回指针大小.(在这种情况下是8个字节)

在你的main()函数中,str是一个数组.因此sizeof(str)返回数组大小.

这是数组和指针之间的细微差别之一.