字符串常量是以”\0”为结束标识,所以字符串所占的空间比双引号中的字符串的数目大1.
比如
“yuanxuzhen” 字符数目为10,所占空间为11。
字符串常量实际上是一个字符数组。访问可以通过执行第一个字符的指针进行访问。
字符指针的用途
1、作为函数的参数例如
void fun(char* param)
调用的时候我们可以这样使用fun(“yuanxzh”)
2、
char* p;
p = “yuanxuzhen”;
这个语句的意思是将“yuanxuzhen”这个字符串数据的第一个字符的指针赋值给p.从而可以通过p来访问数组。c语言不存在对整块数组操作的函数。
3、
char* p_message = “yuanxuzhen”;
char[] a_message = “yuanxuzhen”;
a_message是个数组,在栈上分配,可以修改其中的值。
p_message 是指向常量的指针,不可以修改其中的值
char* p_m_message = malloc(10);
在堆上分配的内存,可以通过指针*p_m_message 和p_m_message[n] 进行修改
sizeof和strlen的区别?
sizeof计算的是类型的长度,int 32 char 8 short 16
strlen计算字符串不包含’\0‘的长度