指標常量,陣列列印

2021-06-20 12:15:53 字數 1233 閱讀 5317

//把陣列列印出來

# include

void printfshuzu(char *p, int n);

int main()

;//a是乙個指標常量。

printfshuzu(a,5);

//printf("%d", &a[0]);

return 0;

}void printfshuzu(char *p, int n)//實參和形參的資料型別要是一樣的,

}把陣列列印出來

# include

void printfshuzu(char *p, int n);

int main()

;printfshuzu(a,5);

//printf("%d", &a[0]);

return 0;

}void printfshuzu(char *p, int n)

//實參和形參的資料型別要是一樣的,上面的傳遞的都是指標常量,陣列名就是指標常量,也是位址,陣列名就是位址

//下面將char 型別的變數轉換成整型變數來試一下

# include

void printfshuzu(int *, int);

int main()

;printfshuzu(a,5);

return 0;

}void printfshuzu(int *p, int n)

}//事實證明:這裡與型別是沒有關係的

使用另一種方法列印陣列裡面的內容

# include

void printfdhuzu(char p, int n);

int main()

;printfshuzu(a,5);//a也是乙個指標常量

return 0;

}void printfshuzu(char p, int n)//這裡是乙個指標常量啊

void printfshuzu(char p, int n)

int i;

for(i = 0; i  < i+n; i++)

printf("a[%d] = %d\n", i,p[i]);}}

*/}//通過上面的例子我們要知道的是:

函式的傳遞的引數的型別要是一樣的,所以最後乙個例子還是能夠成立的

陣列名是乙個位址,而這個位址不會變,那麼就是乙個位址常量,指標就是位址,位址就是指標,那麼陣列名也就是位址常量,所以又有陣列名與指標密不可分。

上面我們用到了變數++,指標++

指標常量與常量指標,指標陣列與陣列指標

指標常量與常量指標,指標陣列與陣列指標,這兩組概念比較容易混淆,所以寫下。首先說下指標常量和常量指標。須指向乙個變數,但是指標指向的變數的值可以變化。宣告如下 int a 0 int const p a p 不可以 p 可以 常量指標 指向乙個常量的指標,指標本身的值可以變化,但是指標指向那個變數是...

常量指標 指標常量

int const p 表示p是乙個指向常量的指標,這種情況下,編譯器會講p所指向的物件當作常量處理,即便不是常量。所以無法改變其指向的物件的值,但是指標本身的值即其指向可以發生改變。int const p 表示指標是乙個常量,其本身值 即其指向 不可以修改,但是其指向的值 無論是常量還是變數 可以...

指標常量 常量指標

指標常量 指向常量的指標 const int pa int const pa 兩者等價。因為指向常量的指標有時候會指向常量,所以它具有這個性質 不能靠解引用改變它指向的物件的值 以此保護它所指向的常量的常量性。pa d 不可行 d是已經宣告過的整型 但指標本身的值是可變的 pa d 可行 d是已經宣...