C语言:指针数组

文章介绍了C语言中指针数组的概念,强调指针数组存放的是指针,例如`int*arr[]=[&a,&b,&c];`。此外,通过示例解释了指针数组如何存放数组的首元素地址,以及这与二维数组在内存布局上的区别。虽然打印指针数组时类似二维数组,但它们在内存中并不连续,每项分别对应&a、&b、&c等地址。
摘要由CSDN通过智能技术生成

C语言:指针数组

如:

        int a = 10;

        int b = 20;

        int c = 30;

        int* arr[] = [&a,&b,&c];

指针数组存放的都是指针,指针数组是上面类型的,里面的内容就都是什么类型的,因为是int*类型,这是指针类型,所以arr数组(指针数组)内存放的都是int*类型的指针,相当于,存放了三个内容:

        int * arr[0] = &a

        int * arr[1] = &b

        int * arr[2] = &c

还有就是指针数组内存放数组的问题

如:

    int a[] = {1,2,3,4,5};
    int b[] = {2,3,4,5,6};
    int c[] = {3,4,5,6,7};
    int* arr[] = { &a,&b,&c };

这样arr中存放的就是每个数组的首元素地址,我们给它打印出来.

其次另一种打印方法可能会产生误解(PS:不同位置再printf处).

 

 

 这里的 arr[count][num]是不是很想二维数组打印呢?

不可否认的,这的确是二维数组的打印方式

那么这就是二维数组了吗?

答案是:否

因为二维数组再内存中的存储方式是连续的,比如说:a的内容是12345然后直接到b的内容23456

而这里面却是,一 一 对 应 的关系&a然后是&b然后是&c,其中&a对应...&b对应...&c对应...

感谢阅读!如果有误请大佬们评论解答!!非常感谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

srhqwe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值