const在C語言和C 中的區別

2021-09-11 18:16:29 字數 938 閱讀 3893

const在c語言和c++中的對比一

const在c語言和c++中的對比二

下面這段**在c語言中和c++中表現出不同結果

int

main()

環境

c語言中

c++中

結果20

10c++中的10對嗎?

如果你認為沒有被修改,那麼你就錯了,這裡的10是錯誤的,printf列印的時候是在暫存器上獲取的,而記憶體中的a已經被修改為20;

總結:const在c語言中修飾的變數的值是可以被修改的,而c++中被修改了,讀取時需要到記憶體中讀取,而不是從暫存器上獲取,這是乙個坑

指標常量和常量指標:

//下面兩種方式是一樣的

const

int a;

intconst b;

----

----

----

----

const

char

*p="123456"

;p1 =

"abc"

;//表示指標p所指向的空間不能被修改,但是可以指向其它常量

char

const

* p=

"123456";p[

0]='a'

;//這種寫法錯誤,表示p指向位址的值不能被修改

char

*const p =

"123456";p[

0]="a"

;//正確,可以修改指向記憶體的值

p ="abc"

;//錯誤,不能修改p指向的記憶體

const

int*

const e;

//e不能被修改,指向的空間也不能被修改

const在C語言和C 中的區別

對於c語言和c 熟悉的人都知道 const 這個修飾符的存在。在很多面試公司中,const 這個修飾符的面試題筆試題也是一直都有的,那對於const這個修飾符你真的了解嗎?問到const 這個修飾符的用處,很多人都會說,用const修飾符修飾的變數表示該變數是常亮,是唯讀的,無法修改的。其實對於這樣...

const 在C語言和C 語言中的區別

const 在c語言和c 語言中的區別 1 c語言中的 const 是定義了乙個 const 變數,const 用來限定乙個變數是唯讀的,不具備寫的功能,即是不可變的 c 語言中的 const 則是定義了乙個常量 const int a 10 int arr a 在c語言中是錯誤的,因為在c語言中是...

c語言和c 中struct的區別

1.雖然長的一樣,但是本質上型別不同 c語言中 struct是使用者自定義資料型別 udt c 中struct是抽象資料型別 adt 所以下面 struct he 在c裡面實際上資料型別為 struct he 所以定義乙個結構he變數都要 帶上struct.structhe a c語言 變數方式 而...