硕彦博创学习记录——2018.7.24(指针——指向二维数组、结构体,指针数组)

本文详细介绍了C语言中指针数组的概念,包括如何声明和使用。同时,深入探讨了二维数组与指针的关系,如buf1、buf1[0]、&buf[0][0]和*(buf1+0)之间的差异。此外,还讨论了如何引用二维数组中的元素,如buf1[2][2]、*(buf1[2]+2)和(*(buf1+2))[2]。最后,文章涵盖了结构体指针变量的定义和成员访问,以及结构体指针数组和二维结构体数组的基本使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

指针数组:专门用来存放指针的数组

类型* 数组名[长度]

指针数组也是数组,它是用来存放指针的,或者说地址。在上图中,buf+i表示的是第i+1个指针在内存中的地址,buf[i]则是第i+1个指针中存放的内容,比如说buf[0]中存放的是&a,是变量a在内存中的地址,buf[0]=&a.  *buf[0]=100,是输出变量a的值。

二维数组与指针:

从上图可以看到,buf1、buf1[0]、&buf[0][0]、*(buf1+0)在数值是上相等的,但是它们的意义并不相同。

buf1是数组名,是整个二维数组的首地址,buf1[0]是第一行的首地址,&buf[0][0]则是第一行第一列元素的地址,*(buf1+0)是bu1[0]的另一种写法,它的意思也是第一行的首地址。在后面的程序中我们看到的*buf都是*(buf+0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值