#include <stdio.h>
#include <stdlib.h>
int main()
{
printf(“指針數組練習!!!\n”);
/*
數組名就是數組的首地址
數組存在一段連續的內存空間中
*/
double score[] = {60, 70, 80, 90, 100};
double *ptr_score;
int i = 0;
printf(“數組首元素的地址:%p\t%p”, score, &score[0]);
//下面這兩個語句表示相同的意思,都是把數組的首地址賦給指針變量
ptr_score = &score[0];
ptr_score = score;
//注意數組可以使用這種格式的指針來訪問它的元素的值
--------------------------------------一維數組的遍歷------------------------------------
//第一種方式
for(i = 0; i < 5; i++){
printf(“\n%.2f”, score[i]);
}
printf(“\n\n\n”);
//第二種方式
for(i = 0; i < 5; i++){
printf(“\n%.2f”, *ptr_score++);
}
ptr_score = score;
printf(“\n\n\n”);
//第三種方式
for(i = 0; i < 5; i++){
printf(“\n%.2f”, ptr_score[i]);
}
printf(“\n\n\n”);
//第四種方式
for(i = 0; i < 5; i++){
printf(“\n%.2f”, *(ptr_score + i));
}
----------------------------二維數組的遍歷-----------------------
int scoreTwo[3][3] = {{1, 2, 3},
{4, 5, 6},{7, 8, 9}};
int j;
//注意這兩種寫法,第一種是指針數組的聲明,第二種是單一的指針變量的聲明
int (*ptr_scoreTwo)[3] = scoreTwo;
//int *ptr_scoreTwo = scoreTwo;
for(i = 0; i < 3; i++){
for(j = 0; j < 3; j++){
printf(“\n%d”, ((scoreTwo + i) + j));
//注意這樣寫時變量必須是指針數組
printf(“\n%d”, ((ptr_scoreTwo + i) + j));
}
}
return 0;
}