zoukankan      html  css  js  c++  java
  • 10、C语言中指向由M个元素组成的一维数组的指针。

    #include <stdio.h>
    #include <stdlib.h>
    
    
    int main()
    {
        int arr1[4]={32,75,2,10},i=0,j=0;
        int arr2[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};//相当于3个一维数组组成
        int *p1[4];//普通的指针数组。
        int (*p2)[4];//指向由4个元素组成的一维数组的"指针变量" []比*优先级别高
        //p1=arr1;//警告提示 不兼容的指针类型 arr<<==>> &a[0];
        //p1=&arr1;//同样无效  可以使用p1[0]=arr1;
        p2=arr2;//这一类的指针只能这样赋值,使用如同二维数组名,不过可以自增自减,可左值。相当于&arr[0] 第0行地址
        for(i=0;i<3;i++,p2++)//这里使用了p2自动切换到下一行,所以不需要p2+i定位到下一行。
        {
            printf("第%d行的首地址(相当于&arr2[%d]):p=%d\n",i,i,p2);
            for(j=0;j<4;j++)
            {                                                            //等同*(p2+0)+j
                printf("元素arr2[%d][%d]的首地址:&arr2[%d][%d]=%d\n",i,j,i,j,*(p2)+j);
                printf("元素arr2[%d][%d]的值:arr2[%d][%d]=%d\n",i,j,i,j,*(*(p2)+j));
            }
    
        }
        return 0;
    }
    


    程序运行结果:
    第0行的首地址(相当于&arr2[0]):p=2686660
    元素arr2[0][0]的首地址:&arr2[0][0]=2686660
    元素arr2[0][0]的值:arr2[0][0]=1
    元素arr2[0][1]的首地址:&arr2[0][1]=2686664
    元素arr2[0][1]的值:arr2[0][1]=2
    元素arr2[0][2]的首地址:&arr2[0][2]=2686668
    元素arr2[0][2]的值:arr2[0][2]=3
    元素arr2[0][3]的首地址:&arr2[0][3]=2686672
    元素arr2[0][3]的值:arr2[0][3]=4
    第1行的首地址(相当于&arr2[1]):p=2686676
    元素arr2[1][0]的首地址:&arr2[1][0]=2686676
    元素arr2[1][0]的值:arr2[1][0]=5
    元素arr2[1][1]的首地址:&arr2[1][1]=2686680
    元素arr2[1][1]的值:arr2[1][1]=6
    元素arr2[1][2]的首地址:&arr2[1][2]=2686684
    元素arr2[1][2]的值:arr2[1][2]=7
    元素arr2[1][3]的首地址:&arr2[1][3]=2686688
    元素arr2[1][3]的值:arr2[1][3]=8
    第2行的首地址(相当于&arr2[2]):p=2686692
    元素arr2[2][0]的首地址:&arr2[2][0]=2686692
    元素arr2[2][0]的值:arr2[2][0]=9
    元素arr2[2][1]的首地址:&arr2[2][1]=2686696
    元素arr2[2][1]的值:arr2[2][1]=10
    元素arr2[2][2]的首地址:&arr2[2][2]=2686700
    元素arr2[2][2]的值:arr2[2][2]=11
    元素arr2[2][3]的首地址:&arr2[2][3]=2686704
    元素arr2[2][3]的值:arr2[2][3]=12

    Process returned 0 (0x0)   execution time : 0.287 s
    Press any key to continue.

  • 相关阅读:
    docker 镜像导入导出[转]
    部署coredns
    构建docker私有库
    怎么安装Docker CE 17( Centos 7)
    [转]使用tcpdump抓取HTTP包
    VLOOKUP函数使用
    有趣:256个class选择器可以干掉1个id选择器——张鑫旭
    算警示吧——此文来自张鑫旭(说说CSS学习中的瓶颈)
    不使用JavaScript让IE浏览器支持HTML5元素——张鑫旭
    CSS中width和height与盒子模型的关系
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3122856.html
Copyright © 2011-2022 走看看