1. 程式人生 > >二維指標行指標和列指標的區別

二維指標行指標和列指標的區別

二維行指標做輸出時定義及使用

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