先看下面這個題##
關於const用法,以下錯誤的是
A int const a = 3; int *p = &a;
B int a = 3; int const *p = &a;
C int a = 3; int * const p = &a;
D const int a = 3; int const &b = a;
選哪個?
這是我學c++時候的一道題,只有過C語言的可能對d選項不太瞭解。
下面介紹一下c語言(c++)中的const
const是一個關鍵字,它限定一個變量不允許被改變,產生靜態作用,這就相當於給一個變量加上權限,變成一個只讀變量,但是不能修改其值。
const 推出的初始目的,正是爲了取代預編譯指令,消除它的缺點,同時繼承它的優點。(百度百科)
下面分條介紹const的具體用法
1.修飾普通變量
const int x = 3;
int型的x被const修飾變成了一個只讀變量(有的視頻上說變成了一個常量,我認爲這種說法不太準確),它的值只能被讀取,但是不能被改變,例如
const int x = 3;
x = 5;//這是錯誤的
這種寫法在編譯器中會提示錯誤(不同編譯器提示不同)
error: assignment of read-only variable ‘x’
這也證實了上面的說法,它是一個只讀變量,而非常量。