指针知识梳理10-指向数组的指针

本文详细阐述了C语言中指向数组的指针的概念,包括将数组视为整体和变量集合的不同视角,如何定义指向数组的指针,以及区分&a与&a[0]的差异。通过typedef的应用,解释了如何更清晰地理解和使用指向一维数组的指针,并探讨了二维数组的数组名及其特性。

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

一、指向数组的指针

1、所谓指向的意思:我们通常说指针变量指向某个变量或者某块内存,意思是这个指针变量存储了某个变量的地址或者某块内存的地址。

2、一个变量可以占多个字节,我们通常所说某个 的地址指的是这块内存的起始地址。比如int  a,变量a栈 0x10 0x11 0x12 0x13这四个字节,那么a的地址是0x10.

3、(1)以前我们定义一个数组的时候,通常是把这个数组当做同种类型的变量的集合来看的,即数组的每个元素,用法为a[i].

       (2)我们也可以把数组当做一个整体来看,int  a[5],  a是个变量,这个变量的类型是数组,这个变量占40个字节,。

                  按照变量定义基本模型 type  name ,如果数组是这么定义可能更好理解这个整体概念, int[10]   a,但是C语言语法不是这样写的。

         (3) 得到一个变量的地址 用&符号,那么当把数组a看做一个变量的时候,它的地址为 &a.

               如果要存储 &a这个数据,需要相应的指针变量,即所谓指向数组的指针。

               定义方法如下  int (*p)[5],其实按照  type *p 这个模型来定义,int[5]  *p 这种写法更好理解,只不过C语言的爸爸在创造语法的时候不这么规定。

              那么 p = &a;

           

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值