#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;
}