內聯函數與宏的差別

C++編程語言

宏是內聯代碼的原始實現。

#define SQUARE(X) X*X

這並不是以傳遞參數實現的,而是通過文本替代實現的--X是“參數”的符號標記。

在標準C中,傳遞參數主要有2種方式:1.按值傳遞;2.按指針傳遞

在C++中,新增了一種與指針傳遞非常類似的傳遞方式:按引用傳遞。

引用的特點:

1.必須在聲明的時候進行初始化

2.聲明一旦初始化就不能再對引用變量進行修改

3.引用變量並不是新增了一個變量,而是對某個變量取了一個唯一的別名,每個“人”既可以

通過該變量的正式名字找到這個變量,也可以通過這個特殊的別名找到它。

4.引用變量的就是爲了更好地傳遞函數參數。

5.當引用變量作爲參數時,在調用函數時,不能把表達式當作參數傳遞給函數

int  a(int& x)
{
  return  x;
}
int  main(void)
{
  int  y = 1;
  int& z = y;
  a(1+z);
}
主函數第三行中調用了函數a(),但是參數是一個表達式,該調用是錯誤的。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章