首页 > 其他分享 >C语言 解开你对“二级指针”的心结与恐惧

C语言 解开你对“二级指针”的心结与恐惧

时间:2024-09-03 12:25:27浏览次数:4  
标签:10 变量 int ppn C语言 心结 pn 指针

今天Mr.狠人在这和大家分享二级指针,我们不用把二级指针想的天花乱坠非常困难

其实二级指针就是一个指针的地址。我们用代码来辅助理解一下

    int n = 10;
    int* pn = &n;//pn是一个一级指针变量
                 //pn指向n,指针变量也是一个变量

现在我们有了n的地址,并且把它放到了新建的变量pn当中去,那么pn是不是也有属于它的内存空间,有相应的空间肯定就有对应的“门牌号”,那么我们再把pn的地址取出来放到新建的变量ppn当中去。

    ppn = &pn;//ppn就是二级指针变量
			  //二级指针变量就是用于存放一级指针变量的地址的

不难理解吧,就是这么一个过程,但我们现在缺失了ppn的类型

	int** ppn = &pn;

现在肯定很多同学有了一个概念的轮廓,就有同学提问那是不是有三级指针、四级指针等,回答理论上肯定是有的,只是现在三级指针几乎都没有使用的情况,更不用说四级五级或者更多。

回到正题,有了这个概念,我们是不是能倒推了解解引用的过程。

 

    int n = 10;
    *ppn = &n;//等价于pn = &n;
    int n = 10;
    **ppn = 10;
    //等价于*pn = 30;
    //等价于n = 30;

 

最后还是要友情提示一下,千万别自己把二级指针的概念想复杂了,它就是一个变量仅仅是一个变量而已,是用于存放地址的变量而已。 

标签:10,变量,int,ppn,C语言,心结,pn,指针
From: https://blog.csdn.net/CPP_ZhouXuyang/article/details/141822591

相关文章

  • C语言指针的进阶理解——指针数组
    //整型数组 //顾名思义是存放整型类型的元素的数组 intarr1[]={1,2,3,4,5};//arr内元素的类型是int //字符数组 //顾名思义是存放字符类型元素的数组 chararr2[]={'a','b','c'};//arr内元素的类型是char那么指针数组你是不是也能推算出来它大概的模样了,差不......
  • 学习C语言之分支与循环(上)桀桀桀
     晚上好各位,桀桀桀。上面就是我们今天的内容了话不多说,开干。    <一>、if语句1.if语句的语法形式如下:if(表达式) 语句表达式成⽴(为真),则语句执⾏,表达式不成⽴(为假),则语句不执⾏。在C语⾔中,0为假,⾮0表⽰真,也就是表达式的结果如果是0,则语句不执⾏,表达式......
  • C语言程序设计(初识C语言后部分)
    世间风物论自由,喜一生我有,共四海丰收。12.表达式求值表达式求值的顺序一部分是由操作符的优先级和结合性决定。同样,有些表达式的操作符在求职过程中需要转换为其它类型。1)隐式类型转换C的整型算术运算总是至少以缺省(默认)整型类型的精度来进行的。为了获得这个精度,表达......
  • C语言程序设计-扫雷游戏
    愿你我成功会师,翻过雪山,走过草地,不远万里。扫雷游戏game.h#pragmaonce#include<stdio.h>#include<time.h>#include<stdlib.h>#defineROW9#defineCOL9#defineROWSROW+2#defineCOLSCOL+2#defineEASY_COUNT10voidInitBoard(charboard[ROWS][C......
  • C语言数字炸弹
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、游戏规则二、游戏制作1、游戏代码2、过程思考总结前言浅学了一点C语言,想试着做一个猜数字小游戏,类似于我们小时候玩过的“数字炸弹”。一、游戏规则随机生成一个1-100的数,玩家可......
  • C语言:大小端模式、判断大小端、大小端转换
    目录1.什么是大端和小端2.为什么会存在大小端的问题3.判断主机字节序(主机大小端)3.1使用联合体(union)3.2使用指针3.3强制转为char类型法4.大小端转换1.什么是大端和小端对于一个存储空间大于1个字节的数据,在内存中有两种存储模式,大端模式(big-end......
  • C语言_扫雷
    引言:当我们C语言学习完数组的时候,可以尝试一些小的游戏来提升自己,比如下面的这个扫雷。玩法介绍:我们需要在棋盘中选中地雷以外的安全区域,直到最后剩下全部的地雷为止,即可获胜。技能要求:分支语句以及循环语句、函数、数组。接下来我将创建三个文件:具备函数声明、宏定义、......
  • 常量指针与指针常量
    1.常量指针当const修饰指针时,我们称其为常量指针特点:指针指向地址可以改,指针指向的值不可更改语法:const数据类型*指针变量名记忆方法:常量指针为常量的指针,重点在常量上,常量为不可更改的值,但地址可改例子inta=10;intb=10;constint*p=&a;//指针指向的值不......
  • c语言编译器IDE的6键钢琴程序代码
    #include<stdio.h>#include<SDL2/SDL.h>#include<SDL2/SDL_mixer.h>//FunctionforloadingmusictoMix_MusicstaticMix_Music*loadMusic(constchar*path){Mix_Music*music=Mix_LoadMUS(path);if(music==NULL){fprintf(stderr,“M......
  • c语言编译器IDE小钢琴程序代码
    #include<stdio.h>#include<SDL2/SDL.h>#include<SDL2/SDL_mixer.h>//FunctionforloadingmusictoMix_MusicstaticMix_Music*loadMusic(constchar*path){Mix_Music*music=Mix_LoadMUS(path);if(music==NULL){fprintf(stderr,“M......