use*_*955 1 c pointers sizeof char
为什么这个char变量的大小等于1?
int main(){
char s1[] = "hello";
fprintf(stderr, "(*s1) : %i\n", sizeof(*s1) ) // prints out 1
}
Run Code Online (Sandbox Code Playgroud)
oua*_*uah 14
NOTA:原始问题起初有点改变:为什么这个char指针的大小为1
sizeof(*s1)
是相同的
sizeof(s1[0])这是char对象的大小而不是char指针的大小.
类型对象的大小char始终1为C.
要获取char指针的大小,请使用以下表达式:sizeof (&s1[0])
为什么这个char变量的大小等于1?
因为a的大小char保证是1C标准的字节.
*s1 == *(s1+0) == s1[0] == char
Run Code Online (Sandbox Code Playgroud)
如果要获取字符指针的大小,则需要将字符指针传递给sizeof:
sizeof(&s1[0]);
Run Code Online (Sandbox Code Playgroud)