关于用指针变量求字符串长度

#include<stdio.h>
int main()
{
char *p="abcd";
int num=0;
while(*p!='\0')
num++;
printf("%d",num);
return 0;
}
为什么我的输出是空白呢?


while (*p++ != '\0')

#include<stdio.h>
int main()
{
    char str[] = "abcd";
char *p=str;
int num=0;
while(*p++!='\0')
num++;
printf("%d",num);
return 0;
}