一.内存

  1.内存的含义:

    内存是沟通CPU和硬盘的桥梁: 

      (1)暂存CPU中的运算数据

      (2)暂存与外部存储器交换的数据

    物理存储器:实际存在的具体存储器芯片

           主板上装插的内存条

           显示卡上的显示RAM芯片

          各种适配卡上的RAM芯片和ROM芯片

     存址空间:对存储器编码的范围。我们在软件上常说的内存是指这一层含义

      (1)编码:对每个物理存储单元(一个字节)分配一个号码

      (2)寻址:可以根据分配的号码找到相应的存储单元,完成数据的读写

         理解:可以将内存 抽象理解为一个超大的一维字符数组,通过下标(对每个字节分配的号码-与操作系统有关,例如 操作系统为32位,号码就是32位的编号)

         拓展:现在可以理解为什么系统会影响内存的性能,32位操作系统寻址范围 就是 2的32次方也就是4G 所以最大内存为4G

  指针和指针变量:

      (1)内存中每一个字节都有自己的编号,这就是“地址”

      (2)如果程序中定义了一个变量,程序运行或者编译时,系统就会给这个变量分配内存单元,并确定他的地址(编号)

      (3)指针实质就是内存“地址”。指针就是地址,地址就是指针

      (4) 指针是内存单元的编号,指针变量是存放地址的变量

  

  关于野指针,空指针,万能指针大家可以去找些资料,这里只贴代码,不做解释

  此处强调一下 ,将NULL赋给指针,此指针就被称为空指针,因为NULL是一个值为0的宏常量

  什么是宏?

    (百度百科)宏是一种规则或模式,或称语法替换 ,用于说明某一特定输入(通常是字符串)如何根据预定义的规则转换成对应的输出(通常也是字符串)。这种替换在预编译时进行,称作宏展开。

  二:const修饰指针变量

    const 限定一个变量不允许被改变,产生静态作用

    用const修饰变量是不安全的 (可以通过高一级指针修改)

    const int * i  = &a    等价于 int const * i = &a    此时const修饰的是 int *  ,所以 *i 是不允许赋值 ,也就是不能间接修改a的值,但是指向地址可以 修改 如 i = &b

    int * const i = &a     此时const修饰的是 变量 i ,所以i 指向的地址不能修改,但是 *i = 200 可以通过,也就修改了a 的值

    const int *  const i = &a  值和地址都不能修改

  三:指针和数组

    int [] i = {1,2,3,4,5};

    i 为数组第一个元素的地址,但他是一个常量

    i = 10 ;   // 发生错误,因为虽然 i 指向元素地址,但是i是一个常量

    sizeof() 方法 ,判断占用多少字节

  四:指针加减运算

    指针的加减运算不像我们所想到加减

    如果一个 int * ,+1的结果就是增加了一个int 类型大小   -----int * i = 20; i = i+1;  就是原地址移动4位

    如果是一个char *,+1的结果是增加一个char大小 --------  ...

    什么类型 * + 1 就移动原地址一个类型位 (指针乘除没有意义)

  五:多级指针

    C语言允许有多级指针存在,在实际的程序中一级指针最常用,其次是二级指针。

    二级指针就是指向一个一级指针变量地址的指针,三级......

    int a = 1;

    int * b = &a;  //一级指针,指向a的地址

    int **c = &b; // 二级指针,指向b的地址 ,*c 就是 b , *cc 就是 a

    int ***d = &c; //三级指针,指向c的地址,*d就是c,**d就是b,***d就是a

  

    

      

转载于:https://www.cnblogs.com/Mr-Hai/p/10245181.html

C语言入门篇(二)指针的介绍和运用相关推荐

  1. 明解C语言入门篇_第10章_指针

    前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...

  2. 单片机stm32LED流水灯C语言,STM32单片机入门 篇二:单片机编程:从点亮LED灯开始(二)...

    STM32单片机入门 篇二:单片机编程:从点亮LED灯开始(二) 2019-04-26 13:21:48 19点赞 73收藏 19评论 写在前面的话:本篇是承接上一篇文章,属于小白向. 没看过的朋友点 ...

  3. 【C/C++语言入门篇】-- 文件操作

    [C/C++语言入门篇]-- 文件操作 收藏 此文于2010-03-09被推荐到CSDN首页 如何被推荐? 最近实在是太忙了,这篇整整就推迟了1个月了,实在是对不起.之前本打算这个模块就结束了,文件操 ...

  4. 视频教程-C语言入门篇-C/C++

    C语言入门篇 23年C++语言编程经验,经历过多个行业的开发项目包括网络安全,网络游戏,通信行业等等,多年的摸爬滚打使自身具备了深厚的开发实力和实战经验. 王健伟 ¥98.00 立即订阅 扫码下载「C ...

  5. 明解C语言入门篇_第8章_动手编写各种程序吧

    前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...

  6. 明解C语言入门篇_第4章_程序的循环控制

    前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...

  7. C语言入门篇之练气化龙(八)(数组下卷)

    上一篇: C语言入门篇之修真奇缘(七)(数组中卷) 文章目录 前言 一.如何理解二维数组? 二.二维数组的定义 三.二维数组的初始化 四.求二维数组的行和列 五.二维数组数组名 六.多维数组 七.字符 ...

  8. 明解C语言入门篇_第13章_文件处理

    前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...

  9. 明解C语言入门篇_第6章_函数

    前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...

  10. C语言入门篇 初识C语言

    C语言入门篇主要包含内容有:一.分支和循环语句 二.函数 三.数组 四.操作符 .五.指针 .六.结构体 七.函数栈帧的创建和销毁 目录 1.编写第一个程序 2.数据类型 3.变量 4.常量 5.字符 ...

最新文章

  1. 【Qt】QImage使用总结
  2. android复制链接到粘贴板,Android复制粘贴到剪贴板
  3. 卡顿严重_王者峡谷:S20出现bug?卡顿十分严重
  4. DFS--POJ 1190 生日蛋糕
  5. 使用JDK 13查看TLS配置
  6. Css Sprites 多张图片整合在一张图片上
  7. php历史上的今天源码,代码获取历史上的今天发生的事_基础知识
  8. 基本概念学习(8006)--南桥芯片
  9. 新sniffer pro 4.75 sp5下载
  10. 保存到千牛服务器的文件在哪里,压缩包里的文件保存后在哪里?
  11. Web全栈工程师修养
  12. 【C#】WinForm 之 SQL Server 服务监控器(避免开机启动服务)
  13. 《魔兽世界插件》教程—21点扑克游戏 Blackjack
  14. 莫队算法二(树上莫队cot2,Haruna’s Breakfast)
  15. 六个防止SQL注入式攻击的建议
  16. 锁定计算机黑屏怎么办,win10锁定屏幕就黑屏怎么办_win10电脑锁定了黑屏怎么办...
  17. Linux UVC driver 独立交叉编译记录
  18. 星座运势查询微信小程序源码 周公自定义解梦源码
  19. 火狐浏览器,笔记本触板无法双指上下滑动
  20. 飞信发送手机短信接口

热门文章

  1. python内置类属性_python常用内建属性大全
  2. php curl发送delte,php Curl如何发起POST DELETE GET POST请求
  3. matlab里面的if跟几个end,在编程中写两个end if 是什么意思
  4. python读取文件_一日一技:使用Python读取Excel文件
  5. 跳转后退_羽毛球后退步法常见问题及解决方法
  6. mysql 游标中实现递归_mysql中实现递归查询?
  7. javascript怎么清除CSS样式?
  8. 91年转行前端开发,是不是不该转,有啥风险?
  9. python中求根公式_用python做个带GUI的求根公式吧
  10. python二值化特征_OpenCV-Python系列之轮廓特征高阶