已采納回答 / Vaquish
第一個是在getMax(*arr,count)的作用域下進(jìn)行輸出,所以調(diào)用getMax(*arr,count);第二個是在getMax(numArr[0],numArr[2])的作用域下輸出,調(diào)用的是getMax(int a,int b);所以,兩個不一樣
2015-07-11
已采納回答 / onemoo
你要理解變量類型的重要性。p的類型是指向const int的指針,如果你解引用這個指針的話,得到的會是const int類型。p的類型決定了這樣的性質(zhì),這性質(zhì)與p到底指向誰是無關(guān)的。所以即使p指向的是個非const的int對象,但如果你通過p來訪問所指的內(nèi)容的話,這內(nèi)容還是會被當(dāng)作const的。就是說你無法通過*p來修改它,所謂的“*p的值無法修改”就是這個意思。當(dāng)然 i 本身是普通的int,自然可以通過 i 來任意修改了。故const int指針可以指向const int對象,也可以指向普通的int對象...
2015-07-09
已采納回答 / onemoo
參數(shù)列表中的 *arr 是可以寫成 int arr[] 的。在函數(shù)聲明的參數(shù)列表中聲明的數(shù)組參數(shù),是會被視作指針的。抱歉,請忽略上一條回答,我沒有注意到這個是C++問題!剛才的回復(fù)中可加入的限定符是C語言的特性,在C++中沒有這個特性。在C++14中,也僅能在[]中加入constexpr這一個限定符。
2015-07-07
已采納回答 / onemoo
準(zhǔn)確地表達(dá)應(yīng)該是:p是一個指向const int型變量的指針,所以p無法修改其指向的int對象。但p本身不是const的,所以能被改變(也就是可以指向別的int)。*p是解引用p以得到p指向的對象。代碼中第一個*p得到x,但只是用來讀取x的值,并沒有修改x的內(nèi)容。然后代碼將y的地址賦予了p,再次*p時就得到了y,同樣代碼中也沒有更改y的內(nèi)容,所以說沒有改變*p的值。 ?那個講解只說“*p”容易會引起理解上的歧義。還應(yīng)該注意到一點(diǎn):p是一個指向const int的指針,說明p可以指向const int對象,...
2015-06-22
已采納回答 / onemoo
或的關(guān)系。但注意這里有坑:函數(shù)在傳參時,參數(shù)是可以進(jìn)行自動轉(zhuǎn)換的。假如調(diào)用函數(shù)時傳的參數(shù)類型沒有完全匹配任何一個可重載函數(shù),而且都可以進(jìn)行類型轉(zhuǎn)換的話,編譯器會報歧義錯誤的。
2015-06-20
已采納回答 / JACK630
上面一組:const int x = 3 表示x為一個常量,其值為3,且x的值是不能改變的;int *y = &x 定義了一個指針變量y,y指向x,y存放的是x的地址,改變y的的值也就相當(dāng)于改變了x的值,這與常量x不能被改變相沖突,所以說有危險;下面一組:可以正常使用;
2015-06-05