關於const的問題const int a int const a int const a的區別

時間 2021-08-30 09:42:50

1樓:匿名使用者

1、如果const位於星號的左側,則const就是用來修飾指標所指向的變數,即指標指向為常量;如果const位於星號的右側,const就是修飾指標本身,即指標本身是常量。

2、因此,const int *a;和 int const *a;的情況相同,都是指標所指向的內容為常量(const放在變數宣告符的位置無關),這種情況下不允許對內容進行更改操作,如不能*a = 3 ; ,int *const a;為指標本身是常量,而指標所指向的內容不是常量,這種情況下不能對指標本身進行更改操作,如a++是錯誤的。

3、const int* const a;為指標本身和指向的內容均為常量。

2樓:

前兩個一樣,意思是指標指向的物件是const(指標本身的值可變,不是const),第三個是指標本身不可變const,(但他指向的物件可變,不是const)

3樓:

const int *a; 表示指標a指向的整數為只讀變數,不能改變,但可以改變指標a的值來改變a指向的內容。

int const *a;同上,一個意義。

int *const a;表示指標a為只讀變數,不能改變,既不能改變a指向的地址,但可以改變a的內容。

const定義要從右至左看,const int *a,既const (int *a),const修飾的是指標a指向的內容,int *const a;const修飾的是a,即指標。

c語言定義變數如:int const a;與const int a;有什麼區別?

4樓:匿名使用者

baiint const *a 和const int *a 沒有區別,都是du

一個zhi指向一個int常量的指標,這個指標本身dao以後可以重賦值指向別的int常量。

而 int *const a; 表示a是一個指標常量,初始化的時候必須固定指向一個int變數,之後就不能再指向別的地方了。

#include

int main()

5樓:匿名使用者

在定義變來量的時候是沒有說明區自別的;例bai如:const int a; int const a;但是定義此類變數時du,一般zhi

放在前面!

const int *a和dao int * const a這個區別就很多了,第一個是保證指標所指的資料不能被修改,第二個是指標不能被修改

const int a(){ } 和int a()const { } 有區別麼 有什麼區別 分別代表什麼

6樓:匿名使用者

int a()const 表示a()函式中,類的成員變數不能發生任何改變

const int a() 這屬於一種牽強的寫法吧,意思是返回值是一個整型 , 而且這個返回值是常量,有必要這樣寫嗎?(個人理解)

7樓:

const int a()

a的返回值是一個const int

int a() const

a返回int

a不會對引數進行修改;如果a是結構體或者類的成員,那麼也不會對結構體或類的成員變數進行修改

int const a 和const int a有什麼區別

8樓:宿雨厭厭

沒有區別。

修飾非指標時,沒有區別:都是宣告int常量a;修飾指標時,置於int前,表示指標只能指向常量,*a賦值非法,置於int後,表示指標常量,a賦值非法

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

const 限定一個變數是const,一旦初始化後,它的數值就不允許改變,只能用於 讀 const量不能做左值,不能用於 寫 例如 const int x 10 宣告和初始化x 20 錯了,x 不能做左值。printf d n x 用於指標時,比較複雜。const int p p 只讀int con...

C 中關於const做為函式引數的常引用

在vs2008c c 程式,示意如下 int main func1定義為void func1 const char c1 在編譯工程選項裡選擇作為c 程式編譯,就會出錯,cannot convert parameter 1 from unsigned char to const char c 中函式...

C 初學者對於const的理解

這問題多看書 這本書沒有描述清楚或者你看不明白 換一本看 還不明白就用 const a const func a const one 首先這是一個指標函式 首先去理解什麼是指標函式 指標函式是指返回值是一個指標 const a cosnt 型別 就像理解 cosnt int const p 一樣 前...