简单C指针

指向整数的指针,以及指针的指针

myhaspl@myhaspl:~ % vim test1.c#include <stdio.h>int main(void){int x;x=128;int *myp=&x;int **mypp=&myp;printf("x:%d\n",x);printf("myp:%u\n",myp);printf("mypp:%u\n",mypp);return 1;}

上面程序定义了一个int型的整数,然后定义了2个指针,1个是myp,另1个是mypp。

myp和mypp都是指针变量,但指向的内容是不同的,myp指向x的地址,mypp指向myp的地址,通过myp可以找到x,而通过mypp则不能立即找到x,mypp先找到myp,然后再通过myp找到x,因此,mypp也称为指针的指针。

myhaspl@myhaspl:~ % makecc test1.c -o mytestmyhaspl@myhaspl:~ % ./mytestx:128myp:4294957796mypp:4294957784myhaspl@myhaspl:~ %

通过解引用操作符*提取指针指向的内容。

myhaspl@myhaspl:~ % ./mytestx:128myp:4294957796mypp:4294957784*myp:128**mypp:128

代码为

#include <stdio.h>int main(void){int x;x=128;int *myp=&x;int **mypp=&myp;printf("x:%d\n",x);printf("myp:%u\n",myp);printf("mypp:%u\n",mypp);printf("*myp:%d\n",*myp);printf("**mypp:%u\n",**mypp);return 1;}

*myp提取的是x的内容

而**mypp提取的是也是x的内容

那么*mypp提取的内容什么呢

是myp指针变量本身的内容,即x的地址。

可修改上述程序验证一下

#include <stdio.h>int main(void){int x;x=128;int *myp=&x;int **mypp=&myp;printf("x:%d\n",x);printf("myp:%u\n",myp);printf("mypp:%u\n",mypp);printf("*myp:%d\n",*myp);printf("**mypp:%u\n",**mypp);printf("*mypp:%u-myp%u\n",*mypp,myp);return 1;}

程序执行结果:看最后1行

myhaspl@myhaspl:~ % ./mytestx:128myp:4294957796mypp:4294957784*myp:128**mypp:128*mypp:4294957796-myp4294957796myhaspl@myhaspl:~ %

C指针原理(15)-C指针基础相关推荐

  1. C指针原理(16)-C指针基础

    2.指向数组的指针 #include <stdio.h>int main(void){int i;char x[20]="0123456789ABCDEFGHIJ";f ...

  2. C指针原理(44)-汇编基础

    AT&T汇编语语言中的数据段与数据类型 .data段定义的数据元素保留在内存中能够被指令读取和写入; .rodata段定义的数据元素只读: .data与.rodata段的数据类型: .asci ...

  3. C指针原理(24)-C指针基础

    取自netbsd中的源码,检查运算溢出,用C语言实现,方法很精妙 /* hide bintime for _STANDALONE because this header is used for hpc ...

  4. C指针原理(17)-C指针基础

    指针本身也是一种变量,支持常用的运算.比如加.减 #include <stdio.h>int main(void){int i;char x[20]="0123456789ABC ...

  5. C指针原理(13)-C指针基础

    规范路径格式,win32(windows环境下,路径之间的各个目录分隔将"\"改为"/",用"/"分隔,这样的好处是在UNIX和WINDOW ...

  6. C指针原理(14)-C指针基础

    make与makefile make是一个工具程序(Utility software),经由读取叫做"makefile"的文件,自动化建构软件.它是一种转化文件形式的工具,转换的目 ...

  7. C指针原理(12)-C指针基础

    tcctok.h定义了C语言的词法分析的基本元素,主要定义了关键字. / keywords /DEF(TOK_INT, "int")DEF(TOK_VOID, "void ...

  8. C指针原理(19)-C指针基础

    不用下标,直接引用多维数组名时,多维数组名代表一个指针变量,这个指针变量指向是最后一维长度的数组的指针,假设x是一个2*5的数组,定义为: int x[2][5] 直接引用x,不使用任何下标,此时x代 ...

  9. C指针原理(43)-helloworld的C程序汇编剖析

    一.汇编基础 1.指令码与数据处理 当计算机处理应用程序运行指令码时,数据指针指示处理器如何在内存的数据区域寻找要处理的数据,这块区域也称为堆栈,指令码放在另外的指令区,此外,还有指令指针机制,当处理 ...

最新文章

  1. _catboost.CatBoostError: C:/Program Files (x86)/Go Agent/pipelines/BuildMaster/catboost.git/catboost
  2. C#面试题汇总(未完成)
  3. CTO在企业技术创新中的作用和地位
  4. Django 3.2.5博客开发教程:一些常用的模板使用方法
  5. 打破信息孤岛完成EAI
  6. Android 音频录制和播放问题
  7. java应用部署docker_Docker部署JavaWeb项目实战
  8. tensorflow4 代价函数、dropout、优化器
  9. 机器学习模型的可解释性
  10. mybatis-plus忽略映射字段
  11. hadoop搭建部署
  12. adb locat 过滤日志-命令行
  13. 服务器稳定时间,NTP时钟服务器网络时间服务器哪个更好呀?
  14. 程序员怎样更优雅的接私活赚外快
  15. 外部无法连接部署在linux上的MongoDB
  16. 【网络游戏植入案例】
  17. 行式数据库 VS 列式数据库
  18. 金山办公业绩增长的另一面:雷军等密集减持,还涉上亿元侵权诉讼
  19. TensorFlow基础之模型建立与训练:线性回归、MLP多层感知机、卷积神经网络
  20. Paper:《YOLOv4: Optimal Speed and Accuracy of Object Detection》的翻译与解读

热门文章

  1. Python rjust() 方法
  2. STM32 CJSON解析说明
  3. JavaScript学习笔记-JSON对象
  4. Codeforces Round #229
  5. openstack第四章:neutron— 网络服务
  6. Gym-101466K Random Numbers(线段树,数学,唯一分解定理)
  7. 帕秋莉·诺蕾姬 (Standard IO)
  8. 常见浏览器兼容性问题与解决方式
  9. jcDate时间选取jQuery插件
  10. 如何处理alert、confirm、prompt对话框