char s[]="hello world";
char *s=“hello world”;
char s[]的s是个字符数组,含12个字节(包含结尾\n),"hello world"对s来说是初始化,将字符一个一个的复制进s阵列
char *s的s是个指针,指向字符类型,由于“hello world”本身就是一个字符串常量,s指向这个字符串的起始位置。
程序验证:
#include <stdio.h>
int main()
{
char s1[]="hello world";
char *s2="hello world";
printf("%d\n",sizeof(s1));
printf("%d\n",sizeof(s2));
return 0;
}
执行结果:
12
4
s1是数组,所以占了12个字节
s2是指针,所以占了4个字节