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是何種型別,...