指標和一維陣列關係
阿新 • • 發佈:2019-02-18
#include <stdio.h> int main() { int i; int score[]={98,56,87,96,56}; int *ptr_score; ptr_score = score; printf("陣列的首地址:%p\t陣列的首元素地址:%p\n",score,&score[0]); //陣列名為陣列首地址,和陣列首元素的地址一致。 printf("\n第一種表示方法:\n"); for(i=0;i<5;i++) { printf("%d\t",ptr_score[i]); } printf("\n第二種表示方法:\n"); for(i=0;i<5;i++) { printf("%d\t",score[i]); } printf("\n第三種表示方法:\n"); for(i=0;i<5;i++) { printf("%d\t",*(ptr_score + i)); } printf("\n第四種表示方法:\n"); for(i=0;i<5;i++) { printf("%d\t",*(score + i)); } printf("\n第五種表示方法:\n"); for(i=0;i<5;i++) { printf("%d\t",*ptr_score++); } //強調第五種如果想再次列印數組裡的元素,需要重置指標的位置。 ptr_score = score; return 0; }
小結:
- int num[50];需要強調:num作為陣列名,同樣也是該陣列的首地址。
- num的值和&num[0]的值是一致的,即陣列的首地址和陣列首元素的地址一致。
- 陣列中第i+1個元素為:
第i+1個元素的值:num[i+1] 或 *(num+i+1)
第i+1個元素的地址:&num[i+1] 或 num+i+1
- 為指向陣列的指標賦值:
int *ptr_num = num 或 int *ptr_num = &num[0] - 指標變數可以指向陣列元素:
int *ptr_num = &num[4] 或 int *ptr_num = num+4