1. 什么是指针

计算机中所有的数据都必须放在内存中,不同类型的数据占用的字节数不一样,例如int 占用4个字节, char占用1个字节。为了正确地访问这些数据,必须为每个字节都编上号码,就像门牌号一样,每个字节的编号是唯一的,根据编号可以准确地找到某个字节。我们将内存中字节的编号称为地址 (Address)指针(Pointer) 。地址从0开始依次增加,对于32位环境,程序能够使用的内存为4GB.
最小的地址为 0x0000 0000 最大的地址为 0XFFFF FFFF

C/C++中 * 号运算符的意义 ;所在环境不一样,意义也不一样。

2.定义指针变量

定义指针变量与定义普通变量非常类似,不过要在变量名前面加星号* ,
格式为: datatype *name; 或者datatype * name = &value;
* 表示这是一个指针变量, datatype 表示该指针变量所指向的数据的类型。
在指针定义中 * 号是和变量名结合;

总结:所谓指针,也就是内存的地址;所谓指针变量,也就是保存了内存地址的变量。
指针的大小在 32 位平台是 4 个字节,在 64 位平台是 8 个字节

2.1 图解指针

当程序执行到ip = &a ;时,ip里存储的的是 a 变量的地址,*ip = 100;,此时对 * ip 操作等同于对 a 本身操作。

此时 a 变量的值已经修改为100;当程序执行到ip = &b ;时,ip里存储的的是 b 变量的地址,*ip = 200;,此时对 * ip 操作等同于对 b 本身操作。

使用指针变量首先要明确指针变量自身的值(存储的是地址),再明确指针变量所指的实体(解引用)


定义指针变量时,类型对指针变量起到 2 个作用
1)解析存储单元的大小
2)指针变量 +1 的能力

如:

  double da =   *dp;int ib =  * ip;char cc =  * cp;

C语言指针(一)——什么是指针及指针的定义相关推荐

  1. c语言课程设计链表 文件,C语言课程设计第三节课:指针和链表使用     150809205...

    一.学习体会 C语言的难点就是指针,学习的时候感觉指针的难点在于与其相关的技术和方法很多,所以学习              的时候并不能像前边一样一个知识点一道题就明白了. 二.以下是我对指针原理的 ...

  2. 【C 语言】一级指针 易犯错误 模型 ( 判定指针合法性 | 数组越界 | 不断修改指针变量值 | 函数中将栈内存数组返回 | 函数间接赋值形参操作 | 指针取值与自增操作 )

    文章目录 一.判定指针合法性 二.数组越界 三.不断修改指针变量值 四.函数中将栈内存数组返回 五.函数间接赋值形参操作 六.指针取值与自增操作 一.判定指针合法性 判定指针合法性时 , 必须进行如下 ...

  3. 【C 语言】数组作为参数退化为指针问题 ( 问题描述 | 从编译器角度分析该问题 | 出于提高 C 语言执行效率角度考虑 | 数组作为参数的推荐方案 )

    文章目录 一.问题描述 二.从编译器角度分析该问题 三.数组作为参数的推荐方案 一.问题描述 将 数组 作为 函数参数 , 传递时会 退化为指针 ; 数组的首地址 , 变为指针地址 , 函数中无法判定 ...

  4. 【C++ 语言】引用 ( 引用简介 | 指针常量 | 常量指针 | 常引用 | 引用参数 | 引用 指针 对比 )

    文章目录 I . 引用概念 II . 引用声明 III . 引用 地址 内存 分析 IV . 常引用 V . 引用作为参数 VI . 引用 与 指针 对比 I . 引用概念 C++ 对 C 扩充 : ...

  5. 【C 语言】指针 与 数组 ( 指针 | 数组 | 指针运算 | 数组访问方式 | 字符串 | 指针数组 | 数组指针 | 多维数组 | 多维指针 | 数组参数 | 函数指针 | 复杂指针解读)

    相关文章链接 : 1.[嵌入式开发]C语言 指针数组 多维数组 2.[嵌入式开发]C语言 命令行参数 函数指针 gdb调试 3.[嵌入式开发]C语言 结构体相关 的 函数 指针 数组 4.[嵌入式开发 ...

  6. 【C 语言】结构体相关 的 函数 指针 数组

    . 作者 : 万境绝尘 转载请注明出处 : http://www.hanshuliang.com/?post=30 . 结构体概述 : 结构体是 多个 变量的集合, 变量的类型可以不同; -- 可进行 ...

  7. C语言什么时候必须用到二级指针?(需要调用函数为一维空指针确定值的情况下,需要传入二维指针,也就是那个一维指针的指针)

    结论:需要调用函数为一维空指针确定值的情况下,需要传入二维指针,也就是那个一维指针的指针 例子:为空指针p开辟内存空间 1.不用二级指针(无法实现) #include <stdio.h> ...

  8. C语言再学习 -- 再论数组和指针

    之前有总结指针数组,但是现在看来总结的太简单了.好多重要的知识点都是一带而过的.本想在后面添加后来想想算了,还是再写一篇文章来详细介绍数组和指针这对冤家吧. 之前总结的,参看:C语言再学习 -- 数组 ...

  9. c语言实参形参函数调用指针引用 符号实例,C语言实参、形参、函数调用、指针、引用、符号实例.doc...

    C语言实参.形参.函数调用.指针.引用.符号实例 C语言实参.形参.函数调用.指针.引用.*&符号实例 实现环境:VC6 程序源代码: #include "stdio.h" ...

  10. c语言回调函数_C语言学习第26篇---函数与指针分析 回调函数

    函数类型的概念 1.C语言函数也是有类型的 2.函数类型由函数返回值,参数类型,参数个数共同决定 int add(int i,int j) 的类型是 int(int , int) 3.C语言中通过ty ...

最新文章

  1. Mac 安装 Jenkins
  2. java 通用取得 系统硬件信息及 jvm 信息的 jar 包 oshi-core
  3. Zookeeper_安全认证讲解
  4. python提取文章中的中文数字
  5. 只要掌握了这条法则,你就有赚不完的钱
  6. 安卓弹性刷新通用版—支持任何view上下刷新均有弹性效果
  7. [Java Web]敏感词过滤算法
  8. c# 通过查看注册表的方式来判断电脑安装office的版本
  9. 史上最严重网络数据泄露事件合集
  10. 小甲鱼Python第十九讲(函数,我的地盘听我的)
  11. Linux 环境下配置远程jupyter notebook server
  12. UVALive 4043 Ants(最大权匹配)
  13. 2016年东莞市程序设计竞赛镇区选拔赛上机试题小学组:seat(找座位)
  14. cocos3D 初体验
  15. 高精度地图,从入门到入行
  16. JAVA通过tcp通信劳易测BCL 308i扫码枪获取数据
  17. 亚马逊常见各国标准产品认证标准|干货贴|运营必看|
  18. flowable支持集群数据库
  19. html jquery 三级分类选择框(弹出式)可用于三级城市选择,职位分类选择,行业分类选择等
  20. word滑动时出现花屏/黑线

热门文章

  1. 我的职业生涯(八) 自我疗伤
  2. 疫情裁员浪潮,如何提高面试通过率
  3. Python进阶并发基础--线程,全局解释器锁GIL由来,如何更好的利用Python线程,
  4. 商业智能软件对比评测:FineBI和Tableau
  5. 手机新手上路_术语_各种解释
  6. java类编来那个初始化顺序_Java类及对象的初始化顺序
  7. linux 进程间切换,linux 进程管理 进程切换
  8. AndroidStudio连接真机测试运行
  9. Symfony\Component\Debug\Exception\FatalErrorException: Allowed memory size of 2147483648 bytes
  10. SAP FI系统配置-资产相关