目錄: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不可做左值...