c风格字符串的赋值方式

来源:互联网 发布:log4j.xml 输出sql 编辑:程序博客网 时间:2024/06/07 02:35

1.对于c风格字符串,通常有如下几种赋值方法(字符串(双引号括起来的)都是以’\0’结尾的!!用“”提示,或者在数组中用‘\0’提示

char p[]=”abcde”;这里“abcde”是个常量字符串,存储在常量区。字符串的结尾都是带‘\0’的,只是没有显示而已,p是个数组。这里的意思是把此常量字符串值复制一份存储在数组p中,p的最后一个位置存储的是‘\0’,数组长度为6。

char p[]={‘a’,’b’,’c’,’d’,’e’};这里就是创建一个字符数组,分别存储字符’a’,’b’,’c’,’d’,’e’,没有’\0’的存在,数组长度是5.这里需要注意的是:strlen函数用来求p的长度结果是错误的,strlen函数的参数类型为char*,p可以看为char*,所以不会报错,但是strlen内部执行时是从char*处开始,直到查询到‘\0’结束,记录字符串长度,而数组中并没有存储’\0’,所以其会继续向后查询,这样就产生了错误!!!!!

char* p=”abcde”;这里不同于以上两种,“abcde”是一个常量字符串,p是一个指向此常量的指针,所以这里通过p操作的就是常量区的字符串。由于是常量,所以只能访问,不能对其进行赋值操作,p[3]=‘d’是错误的!二维情况定义如下 char* p[]={“abc”,”def”,”fefew”};//p[]是一个指针数组,分别指向其中的一个字符串,p是指向指针数组首的指针,等同于p[0]。

常字符串只能读取不能修改。

0 0
原创粉丝点击