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个字节
本文探讨了字符数组与字符指针之间的不同之处,并通过一个简单的C语言程序演示了它们在内存中占用空间的不同。字符数组存储一系列字符并占据连续的内存空间,而字符指针则指向一个字符串常量的起始地址。
998

被折叠的 条评论
为什么被折叠?



