int const a 等價於 const int a,表示a為常量,const int a個人認為養成寫const int a的習慣較好,優點之後說。
void t(char a)
{ cout《輸出結果為6 4 4。
因為main函式中的sizeof(a)引數是字元陣列,所以計算過程是6*1 = 6。當a作為引數傳遞到t函式時,程式不會在棧上分配乙個大小為6的陣列,此時傳遞的是乙個位址,也就是指標,所以結果為4。
int * const p表示p是乙個指向整型的指標常量,它的值不能改變,也就是不能再指向其它變數,但可以改變它指向的變數的值。
所以宣告int const *p時,寫成const int *p,有利於與int * const p區分開來。
const int * const p(int const * const p)表示無論是指標本身還是它所指向的值都是常量。
C 中指向常量的指標與常量指標
const double pi 3.14 double ptr 錯誤,只能使用指向常量的指標指向常量 const double ptr 正確 ptr 3.33 錯誤,不可以賦值 指向常量的指標同樣也可以指向非常量 double x 11.11 非常量 const double ptrx x 正確,只...
c 指向常量的指標和指向變數的指標常量
1.const int p 就是所謂的 指向常量的指標 這裡注意,所謂 指向常量 只是這個指標的 一廂情願 只是一種效果上的等價。事實上,const int p a a既可以是常量 const int a 10 又可以是變數 int a 10 但p一廂情願地認為它所指的就是乙個常量,所以它不允許通過...
c 中指標常量,常指標,指向常量的常指標區分
const char myptr char a 指向常量的指標 char const myptr char a 常量的指標 const char const myptr char a 指向常量的常量指標 從字面意思可以看出,指標是乙個常量,也就是位址不能被修改。include using names...