为什么在以下情况下sizeof会打印不同的值:
printf("%d",sizeof("ab")); //print 3
char* t="ab";
printf("%d",sizeof(t)); //print 4
Run Code Online (Sandbox Code Playgroud)
在第一种情况下,我有2个字符...不应该sizeof打印2?因为它们是2个字节?
t是指向包含的数组的指针"ab".它的大小是指针的大小.
"ab"是一个包含的数组"ab".它的大小是该数组的大小,它是三个字符,因为你必须考虑null终止符.
数组不是指针.