C++中,为什么说"把 非const值赋给const变量是合法的,反之则是非法的"?

2025-03-13 05:32:28
推荐回答(1个)
回答1:

这个要看变量的类型,不可一概而论。
如果是普通变量,这句话就不对,上面举过例子了,就不多说了;
如果是指针,那么就是正确的。
const char* ps="aa";//这里ps指向的值aa是不可以修改的,但是指针是可以指向别处的;
char* pt="bb";
ps=pt;//这个赋值是合法的,ps是可以指向别处的,ps指向的值是bb。
pt=ps;//这个就不合法,pt和ps指向的值都是aa,但是aa的值是不能修改的,pt又可以修改指向的值,所以这里矛盾,不合法了。