1. 程式人生 > >行內函數與巨集的差別

行內函數與巨集的差別

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(),但是引數是一個表示式,該呼叫是錯誤的。