C語言中關於const問題

2021-05-04 18:27:57 字數 865 閱讀 2932

1樓:

int const *p

const修飾的是 *p

表示*p不能被更改

即地址裡面的內容不能更改

但p本身並不是常量,可以更改

也就是一個指向常量的指標

在你的例子中p值發生了改變,前後p所的地址裡面的內容沒有更改,如果你*p=3 肯定就會執行時錯誤

p的值可以改變,但p指向地址的內容不能改變,之所以*p的值變了,只是因為p指向另外一個地址了,而不是原來的地址的內容改變了

如果要達到指標的值不能更改並且指標所指內容也不能更改的效果,則要定以為const int * const p

2樓:匿名使用者

你沒搞懂這個int const *p為一個常量指標的真實含義這個意思是p指向的值是常量

即*p是常量

其地址p是可以改變的

不然你可以試著*p=b

就會報錯

你要讓p的地址是常數的話,該用的命令式

int * const p

表示地址p是常量

3樓:

你前面的理解很正確。關鍵就在p當前到底指向哪個地址,p指向某個地址,這個地址空間的內容就不能改變,p指向另一個地址,則原來的地址空間就不再受約束,新的地址空間開始受約束。

4樓:楊武威

可以參考下

5樓:匿名使用者

可以參考下

c語言中的clock 問題,c語言中的問題?

就是while clock now 的意思,注意後面還有個分號,這是一個空迴圈。因為clock會返回當前時間,now是一個過去的時刻,所以這個條件的意思是 當前時間比那個時刻晚的多少小於clocks per sec,也就是如果時間相差還不到clocks per sec就一直迴圈。因此這個迴圈的意思就...

C語言中return的問題,C語言中return的用法疑問

檢測的迴圈有點問題,根本進入不了迴圈 linshi 1,這個是進入迴圈的條件,只有1的時候才能進入迴圈其實判斷素數的子函式有經典的 int s int n for linshi number 1 linshi 1 linshi 這個條件錯了,至少也是 linshi 2 if linshi 1 如果前...

c語言中遇到的問題,C語言中遇到的問題!

printf 系列函式輸出格式萬用字元 d 表示將輸出值以整數對待 c 表示以 ascii 字元對待 f 表示以32bit浮點數對待。舉例如下 printf d v 此時不論變數 v是何種型別,都輸出對應的整數值,比如 v是一個指標,則輸出指標地址。printf c v 此時不論變數 v是何種型別,...