前言:

%x    输出十六进制
&    取地址符
*    取出地址内容,有时又是定义指针的标志符
sizeof() 计算字节
记住两句话:1.引用变量的就是引用变量的内容 2.记住上一句话 

1.指针即地址。

我们定义变量的时候,一个婴儿出生编译器会在内存中分配空间。这就好像一个人,来到这个世界上就会有一个家,这个世界会为他分配一个摇篮。这个摇篮就是他的地址。

比如定义一个int a;那么编译器就会为她分配一个4个字节的空间。

在这个程序中,可以看出,定义的int a=100,编译器为她分配了4个字节的空间,地址叫18ff44,里面存放了100.

引用变量有两种办法:(引用变量就是引用变量的内容,在这个程序中,a的内容是100)

一种是根据变量名引用。比如在上个程序中,输出a的值;

第二种办法是根据地址名来引用.

和人的生活对比,每一个人都占据了一个地方,可以精确到一个点,只要找到这个点,就能找到这个人。这个点都相当于地址。

指针说到底就是地址。

2.定义指针并初始化

定义指针的方式:类型* 指针名;int* point=NULL;//定义一个指针指向空地址ps:NULL是一个空地址。
指针被定义出来一定要初始化,无论如何都要

指针变量时用来存放地址的。

int a=100;
int* point=&a;在这个定义中,int* 才是一个整体,point是指针名。
&a是取出a的地址储存在指针变量中。
因此point里面存放着a的地址,而不是a的内容100;

3.引用指针的内容

可以看出输出point与&a一致,所以point指的是a的地址

4.取出point里面的内容

这个运算符是*

从这个程序中可以看出,*point与point是不一样 的。

*这个符号可以取出地址里面的内容。

5.取出指针所指向的内容

实际上,所有的指针都是一样的空间,会被分配4个字节的空间

但是,取出指针所指向的内容却不是如此,他们是根据自己的类型取出变量

在一般的编译器里面,定义的指针要与所所存放的数据保持一致。

也就是说int型指针只能指向int型变量,不能指向其他变量。

6.指针所指向的内容

//交换ab两个数据的内容
int a=1;
int b=2;
int *pa=&a,*pb=&b;//pa指向a的地址,pb指向b的地址
pa=&b,pb=&a//pa指向b的地址,pb指向a的地址

这个算法只是改变了*pa和*pb,而ab的值并没有改变;因为只改变了pa,pb的指向。

下面这个算法可以交换ab的值

int a=2,b=3
int* pa=&a,pb=&b;
*pa=*pa+*pb;
*pb=*pa-*pb;
*pa=*pa-*pb;

下一节讲指针与数组,指针的加法减法也会一起解释,这些东西只有在指针才容易说明白;

第十五课 简单易懂的指针相关推荐

  1. C语言笔记 第三十五课 数组参数和指针参数分析

    第三十五课 数组参数和指针参数分析 思考:为什么C语言中的数组参数会退化为指针? 退化的意义 C语言中只会以值拷贝的方式传输参数 当向函数传递数组时:(错误的,设计当初的思路) 将整个数组拷贝一份传入 ...

  2. NeHe OpenGL第三十五课:播放AVI

    NeHe OpenGL第三十五课:播放AVI 在OpenGL中播放AVI: 在OpenGL中如何播放AVI呢?利用Windows的API把每一帧作为纹理绑定到OpenGL中,虽然很慢,但它的效果不错. ...

  3. NeHe OpenGL教程 第四十五课:顶点缓存

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  4. NeHe OpenGL第二十五课:变形

    NeHe OpenGL第二十五课:变形 变形和从文件中加载3D物体: 在这一课中,你将学会如何从文件加载3D模型,并且平滑的从一个模型变换为另一个模型.   欢迎来到这激动人心的一课,在这一课里,我们 ...

  5. 【C++探索之旅】第一部分第十二课:指针一出,谁与争锋

    内容简介 1.第一部分第十二课:指针一出,谁与争锋 2.第一部分第十三课预告:第一部分小测验 指针一出,谁与争锋 上一课<[C++探索之旅]第一部分第十一课:小练习,猜单词>中,我们用一个 ...

  6. C语言学习第十五课(文件操作)

    第十五课 1,文件的概念 文件一般指存储在外部介质(如磁盘磁带)上的集合: 2,流的概念 ·操作系统是以文件为单位对数据进行管理的,输入输出是数据传送的过程,数据如流水一般从一处流向另一处,因此将输入 ...

  7. 小学计算机网络信息安全教案,黑教版信息技术五年级上册第十五课《网络信息安全》教案.doc...

    黑教版信息技术五年级上册第十五课<网络信息安全>教案.doc 文档编号:535180 文档页数:2 上传时间: 2019-01-10 文档级别: 文档类型:doc 文档大小:33.00KB ...

  8. 小学五年级上册计算机教案新疆,新疆青少版信息技术五年级上册全册教案(共十五课24页).doc...

    新疆青少版信息技术五年级上册全册教案(共十五课24页).doc 文档编号:761001 文档页数:24 上传时间: 2019-10-10 文档级别:成套资源 文档类型:doc 文档大小:64.00KB ...

  9. OpenGL教程翻译 第二十五课 天空盒

    第二十五课 天空盒 背景 天空盒是用于增强场景表现力的一个常用技术,它一般通过在相机周围包裹一个纹理来实现.这个纹理通常是一些天空.山川或者摩天大楼等等,下面是游戏 Half-Life 中使用天空盒的 ...

  10. 用OpenInventor实现的NeHe OpenGL教程-第二十五课

    用OpenInventor实现的NeHe OpenGL教程-第二十五课           NeHe教程在这节课中向我们介绍了如何从文件加载3D模型,并且平滑的从一个模型变换为另一个模型.两个模型之间 ...

最新文章

  1. SpringBoot2.0之 个性化Banner
  2. 《Booth 空箱》发售一周年回顾
  3. MySQL高级 - insert优化
  4. 链接分析算法系列-机器学习排序
  5. 解放人与设备距离,5G时代的远程操控该如何完成
  6. 【Java】基础知识整理
  7. 第三章计算机网络,第三章-计算机网络及应用.ppt
  8. linux php文件,Linux php文件安装目录在哪
  9. 织梦熊掌号提交urls.php,织梦熊掌号api自动提交代码
  10. 用python进行归并排序,用Python做归并排序
  11. 机器学习pdf_2020年新书-《机器学习算法入门》免费pdf分享
  12. 线程学习9——Mutex类
  13. Atitit.java c#.net php项目中的view复用(jsp,aspx,php的复用)
  14. Atitit. 二进制数据ascii表示法,与base64编码解码api 设计标准化总结java php c#.net
  15. 多窗直播 截屏录制——UC问鼎全球首款直播浏览器
  16. u 20ubuntu 安装 postfix_惠普ENVY 13-AQ0011TX(6QT48PA)笔记本安装win10教程图解
  17. java中reject方法作用_Promise.all中对于reject的处理方法
  18. VS2019_Windows桌面应用程序_01
  19. 《极简学习法》读书笔记
  20. 瘦客户机为何不瘦反胖?

热门文章

  1. Oracle EBS使用adpatch工具打patch过程【Z】
  2. 制作ROS小车系列(一)——小车底盘制作(麦科勒姆轮地盘)
  3. 怎样将图片转换成word文字
  4. 假若明天来临——《AI.未来》读后感3900字
  5. 从聚合数据请求菜谱大全接口数据,解析显示到ListView
  6. MATLAB编写m函数理解 y=f(g(x))*h(x)
  7. 各大型网站架构分析收集
  8. android开发跑步软件设计,计算机软件毕业设计 android跑步应用开发.doc
  9. angular2 全局路由守卫_Angular 路由守卫
  10. 车牌检测STN:Spatial Transformer Networks