指针和二级指针

一个栗子

#include<stdio.h>

int main()
{
    int a = 112;
    printf("a == %d \t&a == %d\n",a,&a);

    int *b = &a;
    printf("b == %d\t*b == %d\t&b == %d\n",b,*b,&b);

    int **c = &b;
    printf("c == %d\t*c == %d\t&c == %d\t**c == %d",c,*c,&c,**c);
    return 0;
}

执行结果:

a == 112        &a == 6356748
b == 6356748    *b == 112       &b == 6356744
c == 6356744    *c == 6356748   &c == 6356740   **c == 112
Process returned 0 (0x0)   execution time : 0.031 s
Press any key to continue.

就好比三个宝箱,分别为a,b,c。每个宝箱都放在一个单独的位置,c里面放着b的地址,b里面放着a的地址,a里面放着大宝剑,你需要得到大宝剑才能去救公主,现在你可以有如下的操作:

①如果你想知道宝箱在哪个地方,只需要在名称前加一个&符号即可,例如:&a = 6356748;

②如果你运气很好,开始你就站在a的面前,那么直接打开即可获得大宝剑;(直接打开 即:直接访问)

③如果你站在了b的面前,直接打开的话你只能获得a的地址,现在的你很苦恼,因为千辛万苦只找到了a的地址,再去找a的话怕是拿到大宝剑的时候公主的孩子都会打酱油了,怎么办??这个时候注意!!刚刚是说直接打开b会得到a的地址,那么我们间接打开不就行了简直是魔法……(间接打开 即:间接访问)

*b == 112

Pia!(o ‵-′)ノ”(ノ﹏<。)

不好意思,刚刚断电了,重新读档,你惊奇的发现,你现在连辛辛苦苦找的b都没有了,只剩个c了,如果你直接打开c,得到的是b的地址,如果间接打开会得到a的地址,咋办呢??那就豁出去了,连用两次魔法试试……

恭喜你~~~成功拿到大宝剑

**c == 112

PS:文笔一般,唠叨这些主要是想帮助C语言小白们大概理解一下指针相关的事情可能不太严谨,如有错误还请大佬指正

后记:

拿到大宝剑的你突然发现,这把大宝剑是那么#¥@(*¥一堆赞美的词 ,于是这位曾经梦想仗剑走天涯,勇救公主的勇士成功转型为------------->打铁匠

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值