指標數組和數組指標(C)

來源:互聯網
上載者:User
//注意指標數組和數組指標分別是如何指向二維數組的
#include <stdio.h>
main()
{
    static int m[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};/* 定義二維數組m並初始化*/
    int (*p)[4];//數組指標  p是指標,指向一維數組,每個一維數組有4個int元素
    int i,j;
    int *q[3];//指標數組 q是數組,數組元素是指標,3個int指標
    p=m;    //p是指標,可以直接指向二維數組
    printf("--數組指標輸出元素--\n");
    for(i=0;i<3;i++)/*輸出二維數組中各個元素的數值*/
    {
        for(j=0;j<4;j++)
        {
            printf("%3d ",*(*(p+i)+j));
        }
        printf("\n");
    }
    printf("\n");
    for(i=0;i<3;i++,p++)//p可看成是行指標
    {
        printf("%3d ",**p);//每一行的第一個元素
        printf("%3d ",*(*p+1));//每一行的第二個元素
        printf("%3d ",*(*p+2));//每一行的第三個元素
        printf("%3d ",*(*p+3));//每一行的第四個元素
        printf("\n");
    }
    printf("\n");
    printf("--指標數組輸出元素--\n");
    for(i=0;i<3;i++)
        q[i]=m[i];//q是數組,元素q[i]是指標
    for(i=0;i<3;i++)
    {
        for(j=0;j<4;j++)
        {
            printf("%3d ",q[i][j]);//q[i][j]可換成*(q[i]+j)
        }
        printf("\n");
    }
    printf("\n");
    q[0]=m[0];
    for(i=0;i<3;i++)
    {
        for(j=0;j<4;j++)
        {
            printf("%3d ",*(q[0]+j+4*i));
        }
        printf("\n");
    }
    printf("\n");
   
}
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.