我在理解以下代码的输出时遇到问题:
#include<stdio.h>
void show(char *);
int main()
{
char strin[] = "Hi Stackoverflow";
printf("%s\n", strin);
printf("%lu\n", sizeof(strin));
show(strin);
return 0;
}
void show(char* message)
{
printf("%s\n", message);
printf("%lu\n", sizeof(message));
}
输出:
Hi Stackoverflow
17
Hi Stackoverflow
8
无论我们在“”之间加上什么,第二个值始终为8。有人知道为什么吗?