作品:
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/