方法一:指针变量
#include<stdio.h>
int main()
{
int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int *p,m=4,i,j;
p=a[0];//或者p=&a[0][0];
printf("please enter row and colum:");
scanf("%d,%d",&i,&j);
printf("%d",*(p+i*m+j));
return 0;
}
在VS2019下,需将源文件的scanf改为scanf_s:
#include<stdio.h>
int main()
{
int a[3][4] = { 1,3,5,7,9,11,13,15,17,19,21,23 };
int* p, m = 4, i, j;
p = a[0];//或者p=&a[0][0];
printf("please enter row and colum:");
scanf_s("%d,%d", &i, &j);
printf("%d", *(p + i * m + j));
return 0;
}
方法二:数组指针
#include<stdio.h>
int main()
{
int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int (*p)[4],i,j;
p=a;
printf("please enter row and colum:");
scanf("%d,%d",&i,&j);
printf("a[%d,%d]=%d\n",i,j,*(*(p+i)+j));
return 0;
}
在VS2019下,需将源文件的scanf改为scanf_s:
#include<stdio.h>
int main()
{
int a[3][4] = { 1,3,5,7,9,11,13,15,17,19,21,23 };
int(*p)[4], i, j;
p = a;
printf("please enter row and colum:");
scanf_s("%d,%d", &i, &j);
printf("a[%d,%d]=%d\n", i, j, *(*(p + i) + j));
return 0;
}