#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
//指针与字符串
char a[]="helloworld";//定义一个字符数组,字符数组内容为helloworld\0
char *p=a;
printf("%s\n",p);
p="abcdef";//字符串常量存文字变量区,“”在使用时,取的是字符串常量首元素地址
//文字常量区内容不能改变
printf("%s\n",p);
printf("%d\n", sizeof(p));//8
printf("%d\n", sizeof("abcdef"));//7
printf("%d\n", strlen(p));//7
printf("%d\n", strlen("abcdef"));//6
return 0;
}
请问 printf("%d\n", sizeof(p));//8 这句语句执行结果为什么是8呢