//把陣列列印出來
# 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是已經宣...