C 關於常量作用域,C 關於 常量引用 不理解

2022-02-27 18:27:49 字數 1454 閱讀 1791

1樓:扈懷煒

你需要在file2裡包含 file1,否則怎麼知道去file1裡找外部變數,而且file1裡的num直接定義成一個常量就可以了,為什麼也要外部變數呢?

如果就是簡單的這麼做,為什麼不在file2中用巨集定義一個常量呢?,是為了麻煩?

2樓:匿名使用者

// a.cppextern const int num = 100; // b.cppextern const int num;int i = num;

3樓:匿名使用者

file1中的變數是static的嗎?

c++:關於"常量引用"不理解

4樓:千鋒教育

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

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

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

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

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

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

double temp = double(1);

const double& cdr = temp;

5樓:匿名使用者

const int a;這就是一個常量,他能賦給任何其他與他一樣的型別的變數,如int b,int c或者long d,前面都是沒有const的哦!!就是說可以是這樣子的 b = a;c = a;d = a;把a的值賦給沒有帶const的型別都可以!!但是如果你要把其他型別的賦給a那都是不行的!!

例如 a = b;a = c;a = d;都是不行的!!因為const的原因!!const的用意是把這個值死死的鎖死了!!

不能改變的!!懂吧!!這都是解釋不能改變的!!

」對常量的引用可以用其它任何引用來初始化「:這卻是說const int a = 4;如果你只是剛開始的建立變數,那麼你給他初始化是沒問題的!!但是之後你卻不能改變它的值,如果你硬生生的改變它的值,程式就會出錯!!

對哦!!我剛才上面第一行說的賦給其他與他一樣型別的變數,其實也不止只是一樣的型別才能賦值,可以用其他函式去強制改變其型別,這個我就不詳細回答了!!以後你自然會遇到了!!

6樓:匿名使用者

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

2、例如:

const double pi=3.14;

#define pi 3.14

c語言合法常量,C語言合法常量

常量的概念 常量是指在程式執行過程中,其值不能被改變的量。c語言中常量 直接常量和符號常量。直接常量是指直接用具體資料表達的一種形式,直接常量又分為整型常量 實型常量 字元常量和字串常量 符號常量則是指用c語言識別符號定義的常量。整型常量就是整常數,10進位制數 8進位制數和16進位制數三種。如 1...

c語言整型常量問題,c語言整型常量

首先要明白c語言的常量表達什麼?我們才能瞭解它的問題是什麼 常量 其值不會發生改變的量,稱為常量。它們可以和資料型別接合起來分類。比如 整形常量,浮點型常量,字元常量等等,常量是可以不經過定義和初始化,而直接引用的。常量分類 常量又分為 直接常量和符號常量。直接常量又叫做 字面常量。如12,0,4....

c語言實型常量,C語言,實型常量???

嚴格來說,c語言中沒有 實型 real type 這種資料型別。c語言中非構造型別只有整型 int short long long long和對應的unsigned修飾的型別,以及同義寫法 以及浮點型 包括單精度浮點型float,雙精度浮點型double,長雙精度浮點型long double 兩大類...