以前总有个问题想不通,就是为什么从const char*到char*的赋值就会出错,而const int到int的赋值就没问题呢?呵呵,不知道有没有其他新手和我有相同的疑问呢?还算我运气好,今天不知道怎么会触发了灵感,终于把这个小白问题想通了。答案就是:
从const int到int的赋值操作,是一种对象的拷贝,赋值后我们在对象的副本上操作当然不会有问题。
从const char*到char*的赋值操作,虽然也是一种对象的拷贝,不过我们拷贝的只是指针对象,而指针指向的对象却是同一份,这个对象在赋值前后的类型发生了变化,编译器自然就会报错。
另外从char* const到char*的赋值仅仅是指针对象的拷贝,而指针指向对象的类型相同,编译器也不会报错。
const和非const对象间的相互赋值
最新推荐文章于 2023-01-23 20:25:07 发布