c语言怎么读取多级指针,剖析C语言中的多级指针是怎么回事

多级指针

很多人说多级指针是指向地址的指针,这个说法从中文的角度没毛病。可是真要较真,这话等于没说,因为很难理解。

下面给与解惑。

C语法规定:

1、对于一般的变量(包括指针类型的变量),前面加一个&就表示,获取该变量的地址。但有一个除外,就是数组。数组变量表示的是一个地址。

2、对于指针类型的变量,进行*操作,得到的是该变量保存的值作为地址,向上寻址,获取对应的值

3、对非指针类型的变量,不能做*操作。都到头了。

比如如下假设:

int A=10;

int* B =&A;

int** C=&B;

int*** D=&C;

157476521_1_20190328092622787

多级指针

那么就会有下面的结果:

157476521_2_201903280926235

两张图表结合,你就明白是怎么回事了!

以变量D为例:

*D的操作,是一个去* 的操作,得到的数据类型就是一个int** 的。和C的类型相同

即:*D=C;

每做一次对指针变量*的操作,就是一次去 * 的操作。也就离真实获取的数据前进了一步。直到最后没*了。当int* 去星后,就变成int 类型的。也就获取到了最终想要的数据。

换句话说。无论有多少个星,最终我们其实要获取的是最后没有*的数据。也就是上图的10.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值