學c語言的時候,記得有時候用const只是提示作用,提示看代碼的人有些內容不能修改,起不到實際作用。所以在我的理解里:const int const *p =&a;等價于int const *p =&a;第一個const只相當于提示作用,沒有實際作用。我在vs里面編譯運行了一下,兩種寫法都沒有報錯,個人理解,還望指正。
已采納回答 / qq_慕粉0064057
就好比給別人起外號,一個人實際名字“小明”(題目中的x),我給它起外號叫“明明”(題目中的y),然后我打了“明明”(改變y值)其實就是打了小明(x值跟著變化),我喊明明其實也就是喊小明
2019-12-31
已采納回答 / 慕粉4034825
可以,const int *y = &x;是指向的地址的內容不可變,即不可通過對*y賦值來修改x的值;但可以修改指向的地址。int *const y = &x;才是y = &p;錯誤,而可以進行*y = 10;對x的值進行修改。你可以上機實操一下,實驗一下不同式子的正誤
2019-12-28
最新回答 / qq_回鍋肉_2
引用和存儲地址不是一個概念,取地址符 和 引用符 雖然都用&來表示。但是要根據具體的語境來分析是什么。eg: Coor c1;? ? ?Coor &c = c1;c1 是已經實例化的真正存在的實體,我們給它取個別名叫c 。如果沒有這個實體c1,只單獨寫個Coor &c。就會報錯。eg: int x = 3; cout << &x??因為x變量已經有了定義int x = 3,也就是說它擁有了空間,去打印 &x 的話就會得到x變量的地址。
2019-12-27
最新回答 / sky_i
因為你的第十行寫的是:?<...code...>所以沒有使用到變量p,所以第八行不影響程序運行。你可以看看答案,答案用的是:<...code...>像答案那么寫的話就需要第八行
2019-12-27
最新回答 / ChinaMoker
int main(void){int x = 10;int y = 20;cout << y << "," << x << endl;system("pause");return 0;}
2019-10-04
最新回答 / Allisam
x將地址給了y,那么*y和x就是一體的,x改變*y也會改變,如果我下面的代碼改變了x,那*y也要變,可是*y不是收到了const的修飾不能變么按照C指針的說法,第一句就是錯的,y是指向x的指針,和x不是一體的,x是變量,x不管怎么變,y指向的地址是不變的。const int * y 就是指向只讀變量的指針,不能改變值,但是可以指向別人
2019-09-15