c語言變量和常量區(qū)分 為什么不能把常量的地址賦給指針變量?
為什么不能把常量的地址賦給指針變量?在const的右邊是int,這意味著int是一個常量,不能修改。所以PRR是指向整數(shù)常量的指針。假設(shè)intaprr=&A,如果允許PR=PRR,那么可以通過PR指針
為什么不能把常量的地址賦給指針變量?
在const的右邊是int,這意味著int是一個常量,不能修改。所以PRR是指向整數(shù)常量的指針。假設(shè)intaprr=&A,如果允許PR=PRR,那么可以通過PR指針修改A,例如*PR=10,這違反了PRR的定義。為了防止由于繞過對值的修改而導(dǎo)致的錯誤,編譯器將提示一個錯誤。如果您只想將PRR本身限制為不可變的,可以在taint*print*constprr=&APR=PRR中寫入,并在PRR前面寫入const,從而限制PRR本身。換句話說,PRR是一個整數(shù)指針常量。PRR的值不能被修改,除非它被初始化(PRR的點不能被改變),但是PRR地址中的值可以被修改。這樣,PR=PRR,就不會有沖突,因為它們都指向同一類型的地址,而PR是一個公共指針變量,所以可以賦值。