C语言指针的高级操作

指针 

指针

在上篇博客中我介绍了C语言指针的最基本操作,那么我在这篇博客中会介绍一下C语言指针的一些骚操作。

指向指针的指针

这名字乍一听有点拗口,再次一听就更加拗口了。先看定义:

type **ptr;

指向指针的指针仅仅只比比指针只多了一个*号,没什么很大的改变,接下在我们看一下使用:

#include <stdio.h>
void main()
{
int var = 10;
int *ptr;
int **pptr; ptr = &var; pptr = &ptr; printf("ptr的值是%p\n",ptr);
printf("*ptr的值是%d\n",*ptr); printf("pptr的值是%p\n",pptr);
printf("*pptr的值是%p\n",*pptr);
printf("**pptr的值是%d\n",**pptr); }

这时候我们想一想&*的作用就能理解了

  • &:取地址
  • *:从地址中取值

我们都知道,C语言指针是一个变量,只不过变量所储存的值只能是地址罢了。那么它肯定在内存空间肯定要占一个位置,因为不可能是凭空产生的嘛,那么指针便有一个内存地址

所以,在上面的代码中,pptr即代表着指针变量ptr内存地址。而*pptr代表的便是指针ptrvar内存地址,所以**pptr便代表的是var的值。

代码运行结果如下:

ptr的值是0x7ffe3aee9994
*ptr的值是10 pptr的值是0x7ffe3aee9998
*pptr的指向的值是0x7ffe3aee9994
**pptr的指向的值是10

最新文章

  1. Sass的基本运算(转载)
  2. 读过的laravel文章
  3. [MongoDB]Mongodb攻略
  4. 如何用chrome修改js代码,跳过网站等待时间
  5. 读书笔记-《Training Products of Experts by Minimizing Contrastive Divergence》
  6. 字符串(AC自动机):COCI 2015 round 5 divljak
  7. PHP之路——验证码实现
  8. MapReduce源代码浅析
  9. MyBatis --- 动态SQL、缓存机制
  10. Python菜鸟快乐游戏编程_pygame(3)
  11. 简单易懂的解释c#的abstract和virtual的用法和区别
  12. html、css基础整理
  13. C++:如何正确的定义一个接口类
  14. MATLAB中mesh函数的使用:基于像素强度画3D密度图(create a 3D density plot based on the pixel intensity:mesh function)
  15. C# 将DateTime.Now.DayOfWeek的值转为中文星期
  16. RxJava中的doOnSubscribe默认运行线程分析
  17. [android] Android 错误集锦
  18. [ 翻译]ruby rails相关的常见服务器
  19. python中执行shell命令
  20. linux系统 使用git图形化管理工具———gitk

热门文章

  1. nutch从搜索引擎到网络爬虫
  2. struts2马士兵笔记
  3. [ 9.13 ]CF每日一题系列—— 340A GCD &amp; LCM
  4. Android-多线程安全问题-synchronized
  5. python实现Telnet远程登陆到设备并执行命令
  6. IO模型 IO多路复用
  7. Linux系统文件与目录管理(1)
  8. git add .添加不成功
  9. VBA操作word生成sql语句
  10. js的相关函数封装(正则表达式,获取url参数,时间格式化)