C语言知识点---char *a和char a[]
在 C 语言中,字符串实际上是使用空字符 \0 结尾的一维字符数组。因此,\0 是用于标记字符串的结束。
举例
定义一个字符串
char *p = "this is a string";
char a[] = "this is a string"
这两种形式都可以定义字符串
printf(“p : %s\n”, p);
printf(“a : %s\n”, a);
分析
char *p
: p为char
类型指针,表示用于存放char
类型地址的变量
char a[]
: a为char类型数组名,表示数组的首地址,
p为指针变量,p = a;
可以将数组名赋值给指针变量p。
a为数组名,数组首元素的指针常量,因此a不能被赋值
sizeof()
计算长度
sizeof(a)
= 17 ,a为数组名,sizeof可以直接计算数组所占空间的大小
sizeof(p)
= 4,p为指针变量,sizeof计算的是这个变量所占空间的大小