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