二維指標行指標和列指標的區別
阿新 • • 發佈:2019-01-23
二維行指標做輸出時定義及使用
#include<stdio.h>
int main(void)
{
int a[3][4],c,d;
int (*p)[4],i,j;//注意二維指標,定義行指標(*p)[4]
printf("Please input the number:\n");
for(c=0;c<3;c++)
{
for(d=0;d<4;d++)
{
scanf("%d",&a[c][d]);
}
}
p=a;
printf ("Please input the row and colum:\n");
scanf("%d,%d",&i,&j);
printf("a[%d][%d]=%d\n",i,j,*(*(p+i)+j));//二維行指標對每個資料的引用
return 0;
}
二維行指標做輸入時定義及使用
#include<stdio.h>
int main(void)
{
int a[3][4],c,d;
int (*p)[4],i,j;
printf("Please input the number:\n");
p=a;
for (c=0;c<3;c++)
{
for(d=0;d<4;d++)
{
scanf("%d",*(p+c)+d);//利用二維指標進行輸入操作時,注意其寫法
}
}
p=a;
printf("Please input the row and colum:\n");
scanf("%d,%d",&i,&j);
printf("a[%d][%d]=%d\n",i,j,*(*(p+i)+j));
return 0;
}
不利用指標p直接利用陣列名作輸出時用法
#include<stdio.h>
int main(void)
{
int a[3][4],c,d;
int i,j;
printf("Please input the number:\n");
for(c=0;c<3;c++)
{
for(d=0;d<4;d++)
{
scanf("%d",&a[c][d]);
}
}
printf("Please input the row and colum:\n");
scanf("%d,%d",&i,&j);
printf("a[%d][%d]=%d\n",i,j,*(*(a+i)+j));//不利用p直接利用a的寫法,但如果是指標p就不可以這樣寫了
return 0;
}
利二維列指標進行輸入輸出操作
#include<stdio.h>
int main(void)
{
int a[3][4],c,d;
int *p=a,i,j;//列指標的定義。注意:沒有列寬了
printf("Please input the number:\n");
for(c=0;c<3;c++)
{
for(d=0;d<4;d++)
{
scanf("%d",p+c*4+d);//用列指標寫輸入語句
}
}
printf("Please input the row and colum:\n");
scanf("%d,%d",&i,&j);
printf("a[%d][%d]=%d\n",i,j,*(p+i*4+j));//用列指標寫輸出語句。注意i和j的呼叫
return 0;
}