C關於 常量引用 不理解

2021-08-08 04:51:58 字數 594 閱讀 3712

1樓:千鋒教育

如果是對一個常量進行引用,則編譯器首先建立一個臨時變數,然後將該常量的值置入臨時變數中,對該引用的操作就是對該臨時變數的操作。對常量的引用可以用其它任何引用來初始化;但不能改變。

關於引用的初始化有兩點值得注意:

(1)當初始化值是一個左值(可以取得地址)時,沒有任何問題;

(2)當初始化值不是一個左值時,則只能對一個const t&(常量引用)賦值。而且這個賦值是有一個過程的:

首先將值隱式轉換到型別t,然後將這個轉換結果存放在一個臨時物件裡,最後用這個臨時物件來初始化這個引用變數。

例子:double& dr = 1; // 錯誤:需要左值const double& cdr = 1; // ok第二句實際的過程如下:

double temp = double(1);

const double& cdr = temp;

2樓:匿名使用者

1、全域性變數只有一種定義方法,就是定義在函式外面全域性變數太長而言可以用變數也可以用巨集

2、例如:

const double pi=3.14;

#define pi 3.14

關於c 的。什麼呼叫方式是引用呼叫??引用呼叫的形參實參分別是什麼

不是的你說的 是不是函式的引數是引用傳入的事。其實很多時候,可能事絕大多數內的函式引數都被宣告成引用形式,容有時候可能會是個const引用。因為代價比較低。不像傳值的引數會給實參賦值一份到函式裡用。引用的形參列表,在呼叫的時候,會傳入實參的引用,就不用複製整個物件了,降低傳參的代價。引用就是另一個變...

關於c語言中的定義int型別的常量

可以這樣定義 但行尾必須加分號。不過你這樣定義的是變數 並不是常量 要定義常量可以寫為 const int a 0x12345678 或者直接用巨集定義 define const a 0x12345678 ps 巨集定義時無需加分號 int a 0x12345678 定義一個變數a 並賦值為0x12...

c語言中命名常量與符號常量的區別

你說的命名常量和符號常量應該是用const和define巨集的意思 const表示常量,它會在資料區開闢一個空間用來儲存這個常量,但是這個常量只讀,不可寫。用define巨集只表示 代換,在預編譯的時候遇到define的時候會把它轉換成相應的值,然後再彙編到指令中去,所以用巨集一般會把最後處理得到的...