改变单个字符 C++

来源:百度知道 编辑:UC知道 时间:2024/07/04 13:36:22
已知char *p="ABC";
如何只对第一个字符操作,将其变为D,而后两个不变

to redfish:
char *p="ABC"; 与char p[] = "ABC";
本质上是不同的。

第一个"ABC"在常量区。p指向常量区,不可以修改"ABC"的值。
第二个"ABC"在堆栈上。编译器为p在堆栈上分配空间,并拷贝"ABC"。所以可以修改。

两个p的值是不同的。

第一个*p ='D' 会是一个运行时错误。

===============================
char *p="ABC";

p是指向字符串常量的指针,不能改变"ABC"的值。

如果是char p[] = "ABC";

*p='D'; 或 p[0] ='D'; 都是可以的。

楼上的,从本质上来讲
char *p="ABC";
与char p[] = "ABC"; p得出的值是一样的

所以*p=D;就可以了

*p=D;