《C和指针》笔记23: 指针的指针

int a = 12;
int *b = &a;

在这里插入图片描述
现在有了第三个变量c

c = &b;

在这里插入图片描述
c的类型是什么?显然它是一个指针,但它所指向的是什么?变量b是一个“指向整型的指针”,所以任何指向b的类型必须是指向“指向整型的指针”的指针,更通俗地说,是一个指针的指针。

它合法吗?是的!指针变量和其他变量一样,占据内存中某个特定的位置,所以用&操作符取得它的地址是合法的,那么这个变量是怎样声明的呢?声明

int **c;

表示表达式**c的类型是int。下表列出了一些表达式,有助于我们弄清这个概念。假定这些表达式进行了如下这些声明。

int a = 12;
int *b = &a;
int **c = &b;

*操作符具有从右向左的结合性,所以这个表达式相当于*(*c),我们必须从里向外逐层求值。*c访问c所指向的位置,我们知道这是变量b。第2个间接访问操作符访问这个位置所指向的地址,也就是变量a。

表达式相当的表达式
a12
b&a
*ba, 12
c&b
*cb, &a
**c*b, a, 12
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值