C语言的指针详解,单指针,双重指针(char *和char **)

最近在学习的过程中碰到了char **,突然发现关与指针的概念很模糊,所以温习了一下

  • char * 和char ** 之间的联系
    char *定义的式一个字符型指针
    char ** 定义的是一个双重指针
    让我困惑的也就是双重指针

下面的图解释一下

指针
变量地址
双重指针1
指针2地址
变量地址

a
b
对于定义的单指针变量" p1 "里的值是变量 " i “的地址,即 p1=&i。
" * " 是取值符,” p1 "代表的意思是取得 p1 指向的地址 (i的地址 ) &i 里的值 ,即p1=i。
" & "是取地址符。

下面着重分析双重指针:

1.从字面意思理解,双重指针的含义即指向指针的指针
2.图中定义的" p2 “就是一个双重指针,它是指向 *指针” p1"*的一个指针。
3.分析指针"p2"的含义

  • &p2: 取得指针p2的地址为0x7ffc955d50c8
  • *p2 : 取得指针p2指向的 地址的值(该地址的值就是指针p1的地址),即是“ *p2=&p1”
  • **p2: 相当于*p1的操作,取得指针p1指向的 地址的值(该地址就是i的地址),**p2=i,故输出printf("%c",**p2);为a。

总结

在学习c语言的过程中,如果又不懂的地方要学会实践验证,不要一股脑的看理论,老话说的号实践出真理

有关于双重指针的应用后期再进行记录。

如有错误欢迎指正,如造成困扰属实抱歉

猜你喜欢

转载自blog.csdn.net/xuexilangren1/article/details/84873954