c++ - 指针 - 字符串 C++

标签 c++ pointers

作品:

char *s="sfdggh";
char *u="xcvbn";

s=u;
cout << s;

不起作用:

char *s="sfdggh";
char *u="xcvbn";

*s=*u;
cout << s;

为什么? (我已经搜索过,但无法理解)

//***************** EDIT **********************************

我得到了一些东西。如果我是对的,请确认我的理解。

char *s;
char *v;

char a,b;

s=&a;
v=&b;

s=v; //Address exchange

类似的:

char *s="sfdggh";
char *u="xcvbn";

s=u; // Address Exchange too!/ Not Value Exchanging

最佳答案

s=u; 重新分配指针 s,这是完全有效的。

*s=*u; 尝试用 u 中的第一个字符覆盖 s 指向的字符串文字的第一个字符,这是非法的。

修改字符串文字是未定义的行为。

char *s="sfdggh";
char *u="xcvbn";

都是字符串文字。

关于c++ - 指针 - 字符串 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13083521/

相关文章:

c - 指向结构体、字段的指针莫名其妙地改变值

c - 释放指向指针的指针

c++ - C++中数组的参数大小

c++ - STDOUT 重定向后,CloseHandle 在 Studio 2010 中抛出异常

c++ - 开发中如何避免 "swapping of death"?

c++ - 寻找与另一个相反的 vector ?

c++如何对结构数组进行排序

c - 尝试在 C 中取消引用/使用双指针

c - 何时对字符指针使用 malloc

c - 读取一串整数并用它们创建一个数组