第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

const的地址變化

如題: const int x=3,int *y=&x;

理論上是成立的,因為const只是將X的變成常量無法修改,int *y=&x;只是將X的地址賦給指針Y,實則X的值并沒有改變,可視頻中說是錯誤用法


正在回答

3 回答

確實是錯誤用法,C++信奉一個原則,不管你設(shè)計的程序是否涉及到錯誤方法使用,只要存在錯誤,不管用沒用到,就是錯的!我們看你說的例子,x是常變量,不可以修改,如果y是指向x的指針,那么*y也不能修改,*y可以看做是x的引用,畢竟引用本質(zhì)就是指針啊,也得是常變量,這點沒問題吧,記住這就是編譯器在上述中得到的信息點,接下來聲明指針y,聲明指針y的時候到底要不要表明,*y是const,如果表明,沒問題了,這點沒有疑問吧,如果不標(biāo)明呢,這個語句int *y=&x意味著什么呢?*y可以修改,是變量,這是C++語法上允許的,但是上面的指出了*y必須常變量才能符合要求,所以如果不聲明,前后矛盾,C++編譯器只能報錯,我們看上面提到的原則,雖然你沒有通過*y修改x的值,但是只要聲明這個變量,提供了這種修改值的方法,就是錯的,沒有理由!

3 回復(fù) 有任何疑惑可以回復(fù)我~
#1

weixin_慕慕1405962

那是不是說,對于指向常變量的指針,他自己本身也必須是常變量指針?
2019-01-23 回復(fù) 有任何疑惑可以回復(fù)我~

你通過x沒法修改了,但是你定義的y還可以修改,你覺得合理嗎

1 回復(fù) 有任何疑惑可以回復(fù)我~
#1

六個蒸蛋

不能這么說。比如以下代碼 int x; const int& y=x; 通過 y 沒法修改 y 的值,但可以通過對 x 重新賦值修改 y 的值。這兩條語句是可以通過編譯的。
2019-11-07 回復(fù) 有任何疑惑可以回復(fù)我~

你說的沒錯

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消
C++遠(yuǎn)征之離港篇
  • 參與學(xué)習(xí)       122682    人
  • 解答問題       488    個

C++掃清通往面向?qū)ο蟮淖詈笠坏勒系K,將所有知識點融會貫通

進(jìn)入課程

const的地址變化

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號