C 裡const有什麼用,c 中const的作用是什麼?

時間 2022-02-14 17:30:12

1樓:金色潛鳥

const 限定一個變數是const,一旦初始化後,它的數值就不允許改變,只能用於「讀」。const量不能做左值,不能用於「寫」 。

例如:const int x=10; // 宣告和初始化x=20; // 錯了,x 不能做左值。

printf("%d\n",x);

用於指標時,比較複雜。

const int *p; // (*p)只讀int const *p; // (*p) 只讀int * const p; // p 只讀

2樓:匿名使用者

、關於一般常量

宣告或定義的格式如下:

const 《型別說明符》 《變數名》 = 《常量或常量表示式》; [1]

《型別說明符》 const 《變數名》 = 《常量或常量表示式》; [2]

[1]和[2]的定義是完全等價的。

例如:整形int(或其他內建型別:float,double,char)

const int bufsize = 512;

或者int const bufsize = 512;

因為常量在定義後就不能被修改,所以定義時必須初始化。

bufsize = 128;   // error:attempt to write to const object

const string cntstr = "hello!"; // ok:initialized

const i, j = 0; // error: i is uninitialized const

非const變數預設為extern。

const 物件預設為檔案的區域性變數。要使const變數能夠在其他的檔案中訪問,必須顯式地指定它為extern。

例如:const int bufsize = 512;        // 作用域只限於定義此變數的檔案

extern const int bufsize = 512; // extern用於擴大作用域,作用域為整個源程式(只有extern 位於函式外部時,才可以含有初始化式)

二、關於陣列及結構體

宣告或定義的格式如下:

const 《型別說明符》 《陣列名》[《大小》]…… [1]

《型別說明符》 const 《陣列名》[《大小》]…… [2]

[1]和[2]的定義是完全等價的。

例如:整形int(或其他內建型別:float,double,char)

const int cntintarr = ;

或者int const cntintarr = ;

struct si

;const si s = ,};

// 上面的兩個const都是變數集合,編譯器會為其分配記憶體,所以不能在編譯期間使用其中的值(例如:int temp[cntintarr[2]],這樣的話編譯器會報告不能找到常量表示式)

三、關於引用

宣告或定義的格式如下:

const 《型別說明符》 &《變數名》 = …… [1]

《型別說明符》 const &《變數名》 = …… [2]

[1]和[2]的定義是完全等價的。

例如:const int i = 128;

const int &r = i;(或者 int const &r = i;)

const 引用就是指向const 物件的引用。

普通引用不能繫結到const 物件,但const 引用可以繫結到非const 物件。

const int ii = 456;

int &rii = ii; // error

int jj = 123;

const int &rjj = jj; // ok

非const 引用只能繫結到與該引用同型別的物件。

const 引用則可以繫結到不同但相關的型別的物件或繫結到右值。

例如繫結到字面值常量

2.int i = 50;

const int &r2 = r + i; // 引用r繫結到右值

3.double dval = 3.1415;

const int &ri = dval;   // 整型引用繫結到double 型別

編譯器會把以上**轉換成如下形式的編碼:

int temp = dval;      // create temporary int from double

四、關於指標

1.指向const 物件的指標(指標所指向的內容為常量)

宣告或定義的格式如下(定義時可以不初始化):

const 《型別說明符》 *《變數名》 …… [1]

《型別說明符》 const *《變數名》 …… [2]

[1]和[2]的定義是完全等價的。

例如:const int i = 100;

const int *cptr = &i;

3樓:哦米噶滴

const定義常量,就是定義賦值後,無法改變。

c++中const的作用是什麼?

4樓:秒懂百科

const:一個c語言的關鍵字

c++中的const怎麼使用?

5樓:秒懂百科

const:一個c語言的關鍵字

6樓:匿名使用者

如果const用於定義一個非指標的普通變數,就是定義了一個常變數,這個變數以後的值在生命期內是不能改變的,因此也必須對該變數進行初始化,在c++中要在類的初始化列表中初始化。

如果const用於定義一個指標變數,不同的寫法有不同的意思。例如const char *p和char* const p 前者表示p指向的內容是不能夠改變的,後者是指p本身的值是不能夠改變的。

如果用於修飾函式返回值,效果和修飾變數一樣。

const修飾類的成員函式,則該成員函式不能修改類中任何非const成員函式。一般寫在函式的最後來修飾。

const修飾類物件表示該物件為常量物件,在物件的生命期中其中的任何成員都不能被修改。

關於const用法還是比較複雜的,還有很多用法,我也沒有總結詳盡,以後遇到可以自己寫程式測試。

c和c 中const用法具體的區別是什麼

c中的const,功能比較單一,較容易理解 作用 被修飾的內容不可更改。使用場合 修飾變數,函式引數,返回值等。c 中應用場合要豐富的多 特點 是執行時const,因此不能取代 define用於成為陣列長度等需要編譯時常量的情況。同時因為是執行時const,可以只定義而不初始化,而在執行時初始化。如...

維他命C有啥用 維C有什麼用?

美白,抗氧化,促進新陳代謝。維c有什麼用?服用維生素c有許多好處 第。一 維生素c可以增強人體的免疫力,殺滅多種入侵的細菌,對於身體的損傷有很好的修復作用。第。二 維生素c也稱抗壞血酸,可以抗壞血病。第。三 還能夠美白養顏,對於提高機體的抗病毒能力有一定的好處和療效。但是如果經常吃維生素c,也有一定...

c在c語言程式設計裡是做什麼用的, c 在C語言程式設計裡是做什麼用的??

山大威海校區 通過你的描述我大概知道你要表述的意思了,fscanf是進行檔案讀取操作,而檔案中資料的存放格式是用中間 來描述規範的,當然,第一項大家都知道,是開啟檔案的指標 file,這裡是output fopen 至於第三項,是要儲存的位置,你的情況是 c字元,而 c就是檔案中的間隔符。 百小度 ...