int main(void)
{
int numarr[3] = {3, 8, 6};
cout<<getmax(numarr,3) <<endl;
cout<<getmax(numarr[1],numarr[2])<<endl; //應(yīng)該把0換成1才是對的
system("pause");
return 0;
}
{
int numarr[3] = {3, 8, 6};
cout<<getmax(numarr,3) <<endl;
cout<<getmax(numarr[1],numarr[2])<<endl; //應(yīng)該把0換成1才是對的
system("pause");
return 0;
}
以前學(xué)過C語言,但是沒學(xué)過C++,所以一直覺得C++很難,現(xiàn)在接觸了之后,感覺其實還好。
2017-07-23
不能將一個限制多權(quán)限小的數(shù)據(jù)(常量)定義出一個限制比它少權(quán)限比它大的使用方式(變量的指針或引用)。這樣就可能會使新定義的使用方式做超越原本數(shù)據(jù)限制的行為(賦值)。計算機就會報錯。
2017-07-22
其實引用是綁定一個變量或常量,且一旦綁定不可改變所以在用引用時必須對其初始化,且非常量引用不可直接綁定字面值即一個數(shù),只能通過變量進行綁定
2017-07-17
可以把別名理解為一種遠程導(dǎo)彈,而變量就是近距離武器,別名的好處就是傳遞給函數(shù)的時候可以遠程打到原來的地址的值,而變量因為發(fā)生了復(fù)制,打不到了
2017-07-17
申請內(nèi)存需要判斷是否成功, 釋放內(nèi)存需要把指針置NULL;
if (NULL == p) {//error!!}
if (NULL == p) {//error!!}
2017-07-17
內(nèi)聯(lián)函數(shù), 在函數(shù)簽名之前要加上inline, 這樣函數(shù)代碼塊會替換掉調(diào)用出的那行函數(shù)名, 這樣減少了函數(shù)調(diào)用棧push和pop stack的開銷.
為啥不什么地方都用inline呢? 首先, inline是建議性的, 由編譯器決定具體是否替換代碼(遞歸是堅決不會進行替換的); 其次, 內(nèi)聯(lián)函數(shù)只適合邏輯簡單, 且調(diào)用頻繁(不停的call這個函數(shù)), 如果內(nèi)聯(lián)函數(shù)中有for, while循環(huán)的話, 往往效果不好, 不如單獨給其一個函數(shù)棧來使用. 最后, 遞歸函數(shù)是無法使用內(nèi)聯(lián)方式的.
為啥不什么地方都用inline呢? 首先, inline是建議性的, 由編譯器決定具體是否替換代碼(遞歸是堅決不會進行替換的); 其次, 內(nèi)聯(lián)函數(shù)只適合邏輯簡單, 且調(diào)用頻繁(不停的call這個函數(shù)), 如果內(nèi)聯(lián)函數(shù)中有for, while循環(huán)的話, 往往效果不好, 不如單獨給其一個函數(shù)棧來使用. 最后, 遞歸函數(shù)是無法使用內(nèi)聯(lián)方式的.
2017-07-17
函數(shù)的重載(overload)和Java語言的函數(shù)重載一樣, 函數(shù)名一致, 但是函數(shù)簽名中的 返回值類型和參數(shù)是不一樣的.
2017-07-17