c语言 二级指针

举报
糖果罐子 发表于 2023/06/18 22:10:57 2023/06/18
【摘要】 @TOC 前言前面我们学习了一级指针操作变量,那什么是二级指针?二级指针又如何操作变量呢? 一、二级指针的声明定义:二级指针定义:int a = 12; / / a变量有自己的空间地址,假设为 0x10, 里面装 12int *p = &a; / / p变量有自己的空间地址,假设为 0x20, 里面装 0x10int **pp = &p; / / pp变量有自己的空间地址,假设为 ...

@TOC


前言

前面我们学习了一级指针操作变量,那什么是二级指针?二级指针又如何操作变量呢?


一、二级指针的声明定义:

二级指针定义:

  1. int a = 12; / / a变量有自己的空间地址,假设为 0x10, 里面装 12
  2. int *p = &a; / / p变量有自己的空间地址,假设为 0x20, 里面装 0x10
  3. int **pp = &p; / / pp变量有自己的空间地址,假设为 0x30, 里面装 0x20

注意点:
pp 就是二级指针变量,用来装1指针的地址。
int ** 就是二级指针类型,int *是一级指针类型。
同理: int ***是三级指针类型,装二级指针地址,&pp。
int **** 是四级指针类型,装三级指针地址。
平时顶多用到2级,本质都是一样的。

二、二级指针的使用:

在这里插入图片描述

计算规则:

  1. *+空间的地址,就是该空间本身。
  2. *+ 空间的地址,就是该空间本身。
    推导d:
    p == &a;
    *p == *&a;
    pp == &p;
    *pp == *&p ==p;
    ** pp ==*p == a;
    所以:**ppa 是一模一样的。

总结

这部分内容要自己好好理解,自己推导一下公式,有些难度。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。