空閒時候思考之const

2021-07-04 02:57:54 字數 1056 閱讀 2143

對於多數人來說那些const的用法比如修飾返回值和修飾引數都應該是十分好理解的下來我要討論

對於c語言中

#include void main()

上邊輸出100

對於c++中

#includeusing namespace std;

void main()

上邊輸出10

原因是什麼呢,c中為const是乙個不能被改變的變數,有記憶體空間的分配,所以可以在記憶體中通過位址改變

c++中的const是乙個常量,一般是儲存在字元表中,不分配記憶體,只是在方位該變數的時候或者檢視變數的位址的時候就會重新分配乙個同名變數與const的常量的值相同,所以此時輸出的位址是這個新變數的位址,所以通過位址改變的還是這個變數的值,但是輸出的時候編譯器還是會在符號表裡面讀取這個常量的值,所以值未改變

const int size;

//c中const預設外部鏈結這裡只是乙個宣告而已

const int bufsize = 100;

char buf[bufsize];//這在c語言中是非法的,因為c語言中bufsize是乙個不能改變的變數

//但是這在c++中合法的,因為c++中不為bufsize建立儲存空間,只是儲存在符號表中

//但是c++中const預設內部連線,如果要在多編譯單元中使用必須設定為

extern const int bufsize=100;    //改為外部連線,此時就是強制為const建立空間

extern const int bufsize;//這在c++中只是宣告,只能在初始化的時候才分配記憶體

//在c++中乙個const不必建立空間,但是c中const必須建立空間    

const int i = ;//集合不能儲存到符號表中,所以只能也必須分配記憶體

float f[i[3]];//編譯期間的值是不能使用的,因為編譯期間編譯器就不知道儲存器的內容

struct s

;const s s = ,};

int main()

如何打發空閒時間

1從事軟體工作,經常會遇到一陣松一陣忙的情況。忙的時候有事做,松的時候就會產生無聊的感覺。這段時間真不知道如何打發,因為在這段時間內,不知道老大什麼時候下乙個任務給你做。若把這 段時間用來學習,感覺學習時間太短,學習不到什麼。我們是不是應該具備一種能力,用一天的時間或幾個小時的時間掌握一種技術。但這...

CPU 空閒時在幹嘛?

人空閒時會發呆會無聊,計算機呢?假設你正在用計算機瀏覽網頁,當網頁載入完成後你開始閱讀,此時你沒有移動滑鼠,沒有敲擊鍵盤,也沒有網路通訊,那麼你的計算機此時在幹嘛?有的同學可能會覺得這個問題很簡單,但實際上,這個問題涉及從硬體到軟體 從 cpu 到作業系統等一系列環節,理解了這個問題你就能明白作業系...

CPU 空閒時在幹嘛?

人空閒時會發呆會無聊,計算機呢?假設你正在用計算機瀏覽網頁,當網頁載入完成後你開始閱讀,此時你沒有移動滑鼠,沒有敲擊鍵盤,也沒有網路通訊,那麼你的計算機此時在幹嘛?有的同學可能會覺得這個問題很簡單,但實際上,這個問題涉及從硬體到軟體 從 cpu 到作業系統等一系列環節,理解了這個問題你就能明白作業系...