C語言學習——指標與陣列、空指標
阿新 • • 發佈:2019-01-22
指標與陣列
陣列的元素在記憶體中是互連的,通過指標運算元組某個元素
方法1
int vals[4]={1,2,3,4};
int* p=vals;
/*p指向陣列的記憶體地址,即第一個元素的地址*/
printf(“%d”,*p);
/*輸出p地址的值*/
p+=1;
/* p向後移動一個記憶體地址*/
printf(“%d”,*p);
/*輸出當前p地址的值*/
printf(“%d”,*(vals+2));
/*直接輸出陣列第三個元素記憶體地址的值*/
/*賦值*/
*p=5;
/* 給當前p地址賦值*/
注:陣列名即是一個記憶體地址,等同於第一個元素的地址。*後面如果跟記憶體地址,即可以獲得該記憶體地址的值
方法2
int vals[4]={1,2,3,4};
int* p=vals;
printf(“%d”,p[0]);
printf(“%d”,p[1]);
/*賦值*/
p[0]=5;
/* 給p[0]的地址賦值*/
注:當一個指標指向陣列時,這個指標也是一個數組,p[0]即所指向陣列的第一個元素的值,同樣也不能出界。
小案例
int vals[4]={1,2,3,4};
for(int* p=vals;p<vals+4;p++){
printf("%d\n",*p);
}
空指標
例如int* p=0
; p就是一個空指標
判斷是否為空指標
if(p){
...
}