首页 > 编程语言 > 详细

C基础-2 数组指针测试

时间:2021-04-18 14:21:03      阅读:17      评论:0      收藏:0      [点我收藏+]
void test1()
{
    int a[3][4] = { 1,2,3,4,5,6,7,8,9,10,11,12 };
    int(*p)[4];
    p = (int(*)[4])a;
   
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 4; j++) printf("%d、", p[i][j]); //或者 *(*(p+i)+j) 或者 *(p[i]+j)
        printf("\n");
    }
}

数组指针,指的是数组名的指针,即数组首元素地址的指针。即是指向数组的指针。例:int (*p)[4]; p即为指向数组的指针,又称数组指针

输出:

技术分享图片

 

 

 1、换成如下代码输出结果改变

void test1()
{
    int a[3][4] = { 1,2,3,4,5,6,7,8,9,10,11,12 };
    int(*p)[2];
    p = (int(*)[2])a;
   
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 4; j++) printf("%d、", p[i][j]); //或者 *(*(p+i)+j) 或者 *(p[i]+j)
        printf("\n");
    }
}

 

 技术分享图片

 

 

 2、换成下面代码,跳过2个元素

技术分享图片

 

 3、下面代码一次跳过4个元素

技术分享图片

 

 可见定义(*p)[n]中n的大小,影响数组方式取值和自身地址计算。

4、下面这个代码输出和直接按数组方式使用是不一样的

技术分享图片

 

 技术分享图片

 

C基础-2 数组指针测试

原文:https://www.cnblogs.com/zhaogaojian/p/14673226.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!