字符指针赋值探究小结

字符指针赋值探究小结

1, 字符指针有初始值时,不能修改其中字符的值

#include

using namespace std;

int main()

{

char *p1 = "nihao";//字符指针赋值给字符指针只能读不能修改字符的值

char *p2 = p1;

p1[0] = 'm';//尝试修改,会报错

return 0;

}

会报错:

2,字符指针赋值给另外一个字符指针,接受字符串的指针也只能进行读取操作。

#include

using namespace std;

int main()

{

char *p1 = "nihao";//字符指针赋值给字符指针只能读不能修改字符的值

char *p2 = p1;

p2[0] = 'm';//尝试修改,会报错

return 0;

}

同样报错:访问权限的问题

3,如果想要对字符指针里面的值进行操作怎么办呢?

看例子:

1)用C语言中strcpy函数

#define _CRT_SECURE_NO_WARNINGS

#include

using namespace std;

int main()

{

char *p1 = "nihao";

char *p2=new char[sizeof(p1)+1];//new 开辟一段新的内存,注意要加上1,要加上字符串末尾‘\0’

strcpy(p2, p1);//调用字符串copy函数

p2[0] = 'm';//对新开辟的内存进行操作

cout << p2<

cout << p1<

}

2)可以用C++中string 类解决

#define _CRT_SECURE_NO_WARNINGS

#include

#include

using namespace std;

int main()

{

string a= "nihao";

string b = a;

b[2] = 'M';//将一个string a赋值给另外一个string b后,可以对b进行操作,对原来那个string a类没影响。

/*a[1] = 'M';*/

cout << b<

cout << a << endl;//对原来那个string a类没影响,验证结果

}

补充:字符串小结

1.string 类不能赋值字符串指针

2.字符串指针可以赋值给string类

3.string 类有初始值后不能看做常量,其中的值也可以修改。(这点和字符指针常量做区分!!)

4.将一个string a赋值给另外一个string b后,可以对b进行操作,对原来那个string a类没影响。

相关文章

中国联通4G套餐选哪款?2025年最省钱的玩法都在这了
大战前热身——2016场地世界杯香港站
Excel公式技巧41: 跨多工作表统计数据