const詳細分析

2021-05-23 11:37:37 字數 954 閱讀 4056

最近在分析

linux

驅動的過程過程中遇到一些關於

const

的使用,現在在這裡詳細剖析一下: 一,

const int *p;

首先分析一下幾個概念:

1:p

是乙個指標變數,因而它也是乙個變數,所謂變數就有變數的位址和變數的值,而這裡

p變數的值就是乙個位址,該位址下存放的是乙個整數,

*p的值等於這個整數。 2.

在*p的前面加乙個

const 

只是告訴編譯器

*p所指向的空間是乙個唯讀的空間。顯然,如果程式中存在

*p = 8

這樣的**是不允許的,編譯器會報錯的。 3.

既然*p = 8

是不允許的,那麼*(

p + 1

)= 8

可以嗎?,

這也是不允許的,因而前面已經有

const int *p

,那麼編譯會認為*(

p+1)

所指向的空間也是唯讀的,所以這是編譯器還是會報錯的。

4.p = p + 1;

則是可以的,因為這是對指標變數中存放的數值

(當然也是個位址

)進行操作,僅此而已。 二,

int * const p; 1.

從上面的分析中知道,

p也是乙個變數,具有變數的一切屬性,它有自己的記憶體位址,並在這個位址上有自己的值,而這個值是也是乙個位址。

2.int * const p

;只是告訴編譯器

指標變數

p所在的記憶體空間是唯讀的,當然就不能對它進行改變了

( 即寫

),其實它本質上和

const int p

;是一樣的。只是前者

p中存放的數值表示的含義是乙個位址,而後者表示的含義只是乙個普通數

(區別於位址

)而已。

約數詳細分析

約數詳細分析 我們先來認識一下約數 約數分正約數和負約數兩種,我們一般只討論正約數。也就是說,接下來所提的約數,只考慮正約數。如果有乙個數k,滿足k n,那麼k就是n 的約數 因數 n是k的倍數。求乙個數的約數是資訊學競賽裡乙個基礎的不能再基礎的問題。如果只求乙個數,最容易想到的就是列舉。當然列舉也...

vue cli 詳細分析

vue lic 是 vue 官方提供的腳手架工具,預設搭建好乙個專案的基本架子,我們只需要在此基礎上進行相應的修改即可。注意 安裝 vue cli 前需要事先配置好 node 環境 npm install g vue cli 如果是 mac 電 sudo表示以管理員的許可權 sudo install...

LiveData詳細分析

目錄介紹 感知生命週期 自動解除資料訂閱 2.1 具有很明顯的優點 不會發生記憶體洩露 不會再產生由於activity處於stop狀態而引起的崩潰 不需要再解決生命週期帶來的問題 實時資料重新整理 解決configuration change問題 資料共享 2.2 細節點補充4.1 單獨使用live...