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.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值