const的詳細用法(C語言)

2021-10-06 11:03:38 字數 2185 閱讀 6364

目錄:const的作用

const和指標的結合

const和引用的結合

const修飾的量為乙個常量即不能被修改的量
如:int a=10;指定義了乙個變數a並初始化為10,但是後面可以對a的值進行修改。

但是 const int a = 10;指的是定義了乙個常量10,後面並不能被修改。

注意:

在c語言(c89)中的const可以不初始化但後續也就無法對其賦值,所以儘管不初始化不會出錯。但要使用const修飾的量就需要對其進行初始化。另外,既然const修飾的量為一常量那麼const修飾的量能不能用作陣列的下標?

const

int a =10;

int array[a]=;

//編譯不通過

//error c2057: 應輸入常量表示式

所以:c語言中const修飾的量為乙個常變數不是常量

const

int*p; 修飾int即*p 所指向的內容無法改變

intconst

*p; 修飾int即*p 所指向的內容無法改變

int*

const p; 修飾int

* 即*p 不能改變指向

const

int*

const p; 修飾int和int

* 指向和所指向的內容都不能改變

1.修飾指標是的定義

const

int a=10;

*p=&a;

const

int a=10;

const

*p=&a;

2.const   int*p   型及   int   const*p型

修飾int為常量,*p所指向的內容無法改變
int a=10;

const

int*p=

&a;*p=

100;

//程式編譯不通過,因為*p被const修飾不能更改

p=&b;

//可以通過,表示p可以指向別的空間,但是要注意的是,指向b之後,*還是不能改變

3.int*const  p   型

修飾int* 即   p  不能改變指向
int a=10;

int*

const p=

&a;*p=

100;

//可以通過

p=&b;

//不能通過,表示p不可以指向別的空間

4. const  int*const p   型

修飾int和int*  指向和所指向的內容都不能改變

int a=10;

i

nt *

const p=

&a;*p=

100;

//程式編譯不通過,因為*p被const修飾不能更改

p=&b;

//不能通過,表示p不可以指向別的空間

1.  a為變數。

int a=10;

const

int&b=a;

a=100

;//將a的值改為100

b=100

;//編譯不通過,因為b為常變數,不能修改

2.  a為const修飾的常量

const

int a=10;

int&b=a;

//編譯不通過,只能引用變數

const

int&b=a;

//編譯通過

a=100

;//編譯不通過

b=100

;//編譯不通過,因為b為常變數,不能修改

const的詳細用法

1.修飾的資料型別是常型別,常型別的變數或物件的值不能被改變const int i 10 int a i 等價於int a 10 2.便於進行型別檢查,使編譯對處理內容有更多的了解,消除了一些隱患。3.方便的進行引數的調整和修改 類似於巨集定義 4.可以保護被修飾的東西,防止被意外修改,增強程式的健...

C語言 const 用法

1 const int a int const a 這兩個寫法是等同的,表示a是乙個int常量。2 const int a int const a 表示a是乙個指標,可以任意指向int常量或者int變數,它總是把它所指向的目標當作乙個int常量。3 int const a 表示a是乙個指標常量,初始...

C語言 const的用法

關於const的用法做以下總結 1 定義常變數 const int a 10 int a 10 可讀可寫 int b a a做右值 a 100 a做左值 左值 放在賦值 符號左邊,左值用寫許可權 const int ca 100 唯讀變數 不能寫,不能做左值 ca 200 error,ca不可做左值...