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

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

關(guān)于&和*運(yùn)算符的疑惑

老師好!為什么*可以這么用:

int?const?*myAge?=?&age;
int?*?const?myAge?=?&age;
const?int?*?const?pi2?=?&age;
int?const?*?const?pi2?=?&age;

而&不可以這么用,但是如果這么用:

int?const?&myAge?=?age;
int?&?const?myAge?=?age;
const?int?const?&myAge?=?age;
const?int?&?const?myAge?=?age;	

vs2013下會報錯但可以運(yùn)行,&和*到底有什么本質(zhì)上的差別(老師的課講的真好)

#include?<iostream>
using?namespace?std;

int?main(){

	int?age?=?22;
	int?yourAge?=?23;

	const?int?&myAge?=?age;?//age的別名myAge是量量,也就是說不能通過myAge重新給age賦值

	const?int?*pi?=?&age;//*pi是常量指針,不能通過*pi重新給age賦值
	int?*?const?pi1?=?&age;//pi1是常量,pi1所存儲的地址不能修改

	//下面兩行代碼等價
	const?int?*?const?pi2?=?&age;
	int?const?*?const?pi2?=?&age;
	
	cout?<<?myAge?<<?endl;
	cout?<<?&myAge?<<?endl;

	/*int?const?&myAge?=?age;
	cout?<<?myAge?<<?endl;
	cout?<<?&myAge?<<?endl;*/

	/*int?&?const?myAge?=?age;
	cout?<<?myAge?<<?endl;
	cout?<<?&myAge?<<?endl;*/
	
	/*const?int?const?&myAge?=?age;
	cout?<<?myAge?<<?endl;
	cout?<<?&myAge?<<?endl;*/

	/*const?int?&?const?myAge?=?age;
	cout?<<?myAge?<<?endl;
	cout?<<?&myAge?<<?endl;*/
	
	return?0;
}


正在回答

2 回答

在聲明(定義)時,前面加&代表所聲明的變量是引用類型,前面的*代表指針類型。

第一段代碼中,為指針賦值時,等號右側(cè)忘了寫&。

第二段代碼中,聲明引用時不能在&后面加上cosnt。 引用原本就是const的。

第三段代碼中:

第9行, myAge為const引用,引用的是age變量。沒問題。

第11行, pi為指向const int的指針,指向age變量。 沒問題。

第12行, pi1為指向int的const指針,指向age變量。 沒問題。

第14行, pi2為指向const int的const指針,指向age變量。 沒問題。

第15行,其實(shí)這樣和14行是一樣的,單看這語句也沒問題,但你重復(fù)定義了pi2。這句會報錯的,且無法編譯通過。


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

AidanDai 提問者

謝謝,學(xué)習(xí)了
2015-10-18 回復(fù) 有任何疑惑可以回復(fù)我~

引用原本就是const的

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

舉報

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

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

進(jìn)入課程

關(guān)于&和*運(yùn)算符的疑惑

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

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

幫助反饋 APP下載

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

公眾號

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