前言:
此篇是针对 指向由m个元素组成的一维数组的指针变量 方面的练习。
解题思路:
假设仍然用上篇程序中的二维数组,上篇中定义的指针变量是指向变量或数组元素的,现在改用指向一维数组的指针变量。
正文:
#include<stdio.h>
int main() {
int a[3][4]= {1,3,5,7,9,11,13,15,17,19,21,23}; //定义二维数组a并初始化
int (*p)[4],i,j; //指针变量p指向包含4个整型元素的一维数组
p=a; //p指向二维数组的0行
printf("please enter row and colum:");
scanf("%d,%d",&i,&j); //输入要求输出的元素的行列号
printf("a[%d,%d]=%d\n",i,j,*(*(p+i)+j)); //输出a[i][j]的值
return 0;
}
程序分析:
程序第4行中“ int(p)[4] ”表示定义 p 为一个指针变量,它指向包含4个整型元素的一维数组。注意p两侧的括号不可缺少,如果写成 *p[4],由于方括号[ ]运算级别高,因此 p 先与[4]结合,p[4]是定义数组的形式,然后再与前面的 * 结合,*p [4]就是指针数组。
总结:
运行结果: