const在c中和c 中

2021-07-04 22:31:55 字數 1034 閱讀 9488

在c語言中

1

2

3

4

5

6

7

voidmain()

結果輸出為1,1

在c++中

1

2

3

4

5

6

7

8

9

10

#include

usingnamespacestd;

intmain(void)

結果輸出為0,1

分析:c語言中的const是執行時const,編譯時只是定義,在執行才會初始化。c語言中const變數不能用於成為陣列長度等作為編譯時常量的情況,原因就在此。c語言const變數在執行時改變了是可以再次讀出改變後的值的。

c++中,const變數是編譯時的常量,可以向#define定義的常量一樣使用。故c++中const變數的值在編譯時就已經確定了,直接對cosnt變數進行了值的替換,因此當const變數的值改變時,const的變數值是不會得到更新的。

指const變數(即常量)值放在編譯器的符號表中,計算時編譯器直接從表中取值,省去了訪問記憶體的時間,從而達到了優化。

而在此基礎上加上volatile修改符,即告訴編譯器該變數屬於易變的,不要對此句進行優化,每次計算時要去記憶體中取數。

博主理解:

1.const變數雖不能直接改變,但是可以通過指標間接改變。

2.const變數只讀取一次,其他都在暫存器上進行。

3.i,j儘管位址一樣,但是j僅是存在於暫存器中。

const在c中的用法

常量和變數的樣子完全一樣,只是常量的值不允許被修改。我們用const這個關鍵字來宣告乙個常量。例 const int a 10 int const a 10 兩種方式都可以宣告乙個常量效果是一樣的。我們也可以用const來修飾指標 const與識別符號 例 define num 20 const i...

const 在c和c 中的區別

c 中的const正常情況下是看成編譯期的常量,編譯器並不為const分配空間,只是在編譯的時候將期值儲存在名字表中,並在適當的時候折合在 中.所以,以下 include using namespace std int main for int i 0 i sizeof array sizeof a...

const 在c和c 中的作用

常型別是指使用型別修飾符const說明的型別,常型別的變數或物件的值是不能被更新的。因此,定義或說明常型別時必須進行初始化。概述1.const有什麼用途?在 c程式中,const的用法主要有定義常量 修改函式引數 修飾函式返回值等3個用處。在c 程式中,它還可以修改函式的定義體,定義類中某個成員為恆...