关于C语言字符串和指针的总结

来源:互联网 发布:石家庄深度网络运营 编辑:程序博客网 时间:2024/06/05 08:29

今天在写一个C语言实现strcat函数功能的函数

发现自己对C语言的初始化还存在一些问题,总结如下:


char str1[ ] ="hello";

char *str2 ="myword";

二者都是定义了一个字符串,但是str1是数组名,是一个常量,是不能被当做左值的

例如:str1 = str2;      \\这样就会报错      错误 1 error C2106: “=”: 左操作数必须为左值 

str2是一个指针,是个变量。但是,这样char *str2 ="myword";定义的字符串是不能改变

里面的字符常量的,因为这串字符是常量,不能被改变

1:二者都可以进行下标进行访问 

例如printf("%c",str1[2]);

printf("%c",str2[2]);     这里不能str2[2] = 'e';   字符串常量不能被修改

2:pstr1不能进行自加运算(++),因为常量不能被当做左值

pstr2可以

3:二者都可以*(pstr1+i)

*(pstr2+i);

以上算是我对今天所学知识的一个小小的总结吧



0 0