符号 * 的三种概念:a = a*b;  //乘法 *两边都是变量 ->乘法概念 √ int *p ;//标识符 和 变量之间 => 申明概念 √ //申明了一个指针p*p =100; //指向概念 √ 

指针有三个值,最关系其中两个值 p和*pp:   指针p,存放的是a的地址  指向目标的地址
*p: p指向目标的内容
(不常用)
&p:存放的也是地址,是指针的地址

理解:1. p本身存的是a的地址  地址没有大小概念 只有高低概念2. 解引用 * 就像解开盒子的秘密一样 盒子里面装的是a的操作地址 当我解密这个操作地址 我就找到a啦3.对*p的操作其实就是对a的操作4. *&p = >&a; 

 问题:
    1. 一个变量可能占有多个字节 指针指向哪?
             32位系统 指针开辟4字节 
             指针:指向的是首地址
    2. 首地址是哪个呢?

默认指向低地址
    3. 既然都只存放4字节 那为什么会有double指针 int指针呢?
        解释:指针不存放double或者int类型 主要是以下能力 
            3-1.对指针的约束能力 :指针+1能力 不同类型+1能力不同
            3-2.对类型的解释不同:如何去哪个部分解开这块内存 *p 
    4. 为什么指针是4个字节?
        内存中有9个通用寄存器:eax ebx ecx edx
                            esp ebp esi edi eip 
                    eip 地址寄存器:寄存代码的地址
        在32位操作系统里面 保护模式 地址寄存器 是32位bit位 
                        从0x 00000000 - 0xFFFFFFFF;
        32位 32bit位 一个字节8bit位 所以32位只能拿4字节编址
            所以 指针是4个字节 
    5.地址线不是36吗?
        36条地址线  保护模式 只用了32条 访问32位 
                    实模式 用了36条 此时可以访问64G

​
int main(){int ar[10] = {12,23,34,45,56,67};int *p = &ar[0];for(int i = 0;i<6;i++){printf("%x => %d \n",p,*p);p = p+1; }​
因为是int类型的指针 指针+1能力:所以数组内存每次+4 十六进制 62fde0 => 12 62fde4 => 2362fde8 => 3462fdec => 4562fdf0 => 5662fdf4 => 67
3-1 对指针的约束能力 :指针+1能力 理解: type *p = NULL; //type可能是任何类型 p = p+n;
=>  p = p +sizeof(type) * n;// 如果是double 那就是 n = 8 每次移动8个字节
假设这里了有一块内存,存放如下地址
0001 0000
0110 0000
0000 1100
0110 0000
0100 0000
0010 0000
0010 0001
0001 0001
0001 0100
char *cp; char *ip; double *dp
都存放首地址0001 0000
 解引用*cp内存是    0001 0000解引用*ip的内存是0001 0000 0110 00000000 11000110 0000
解引用*dp的内存是0001 0000 0110 00000000 11000110 00000100 00000010 00000010 00010001 0001

C语言 -指针 与解引用*相关推荐

  1. C语言 指针的解引用详解

    目录 实例1: 实例2: 指针的定义方式是: type + *   char* 类型的指针是为了存放 char 类型变 量的地址. short* 类型的指针是为了存放 short 类型变量的地址. i ...

  2. 【C语言指针】 指针+-整数、指针-指针、解引用、指针数组、二级指针、结构体声明、初始化、传参

    目录 一.指针 1.指针是什么 1.1.一个单元1个字节 2.指针和指针类型 2.1.指针类型的意义 ① 解引用 ② + -整数 例:把每个整形里放1 每个字节里放1 总结: 3.野指针 3.1.野指 ...

  3. c语言 指针函数 详解,[NOTE-C]C语言指针详解(一)

    C语言指针让一切想法变成可能,强转和指针可以看做一项呼风唤雨的利器,但是C语言中指针应用又需要格外的小心,其更灵活的利用内存,因为不当的应用可能引起各种异常,这篇文章就是让我们一起来认识C指针,更好的 ...

  4. c语言的指针详解ppt,最全的C语言指针详解.ppt

    最全的C语言指针详解.ppt 第6章 指针,6.1 指针定义与使用 6.2 指针与函数 6.3 指针与数组 6.4 指针与字符串 6.5 指针数组与多级指针 6.6 指针与动态内存分配 6.7 指针的 ...

  5. C语言指针详解(全解)—— 前篇

    关于指针的基本概念及相关运算写在了上一篇博客 C语言指针详解(初级)_Seinrich的博客-CSDN博客 本篇博客来详细的解说一下指针,深入探讨指针 一.指针与const const修饰的变量为常变 ...

  6. ##二维数组指针的解引用

    ##二维数组指针的解引用 方法: int (*p)[5]; //定义一个二维数组指针,它的元素是一个包含5个int类型的一维数组 int array[3][5]; p = array; //指针指向二 ...

  7. C语言(宏,内存,地址,指针,解引用)

    #include <stdio.h> #define NUM 100 int Add(int x,int y) {     int z = x + y;     return z; } 宏 ...

  8. c语言 指针_C 语言指针详解

    (给CPP开发者加星标,提升C/C++技能) 作者:C语言与CPP编程 / 自成一派123(本文来自作者投稿) 1为什么使用指针 假如我们定义了 char a='A' ,当需要使用 'A' 时,除了直 ...

  9. C语言指针详解(新手入门推荐)

    目录 指针的理解 字符指针:char * 无类型指针void * 指针数组 数组指针 函数指针 回调函数 函数指针数组 练习 指针和数组笔试题解析 指针的理解 关于指针,我先讲一个故事:一个侦探在案发 ...

最新文章

  1. 英国更注重人工智能基础性研究
  2. 深度神经网络:WX+B vs XW+B,作者原文已经删除,转载过来了~~~
  3. Python库引用import多种用法及比较
  4. 研发效能提升最佳实践的探索
  5. JBOSS7启动与关闭
  6. php 获取域名部分,PHP 获取顶级域名 获取域名的函数 parseHost()
  7. poj3616 基础的动态规划算法 《挑战程序设计竞赛》
  8. 软件测试面试-测试的目的是什么?【高频】
  9. ubuntu中查找文件后高亮_vim查找替换及取消高亮
  10. 基于Ext JS的模块化应用框架搭建及开发
  11. SignalR 服务器系统配置要求
  12. JExcel - 学习总结(1)
  13. [Unity3D]水族馆游戏教程一
  14. android官网自定义相机,android native.js camera自定义相机
  15. 【北邮国院大三上】电子商务法(e-commerce law)知识点整理——Banking Lawe-Payment
  16. win10系统重装之u盘装系统,u盘安装win10系统
  17. U盘安装原版XP系统全攻略
  18. MAGIC文件格式解析
  19. 移动光猫怎么设置虚拟服务器设置,移动光猫自带无线和拨号功能,光猫与路由器如何设置网络才最优?...
  20. Jackson配置大全

热门文章

  1. VS中Qt 开发——无法解析的外部符号 QMetaObject 解决办法
  2. GPS卫星的导航电文和卫星信号
  3. php js 对象追加元素,JS添加元素新节点
  4. Salesforce Apex 中常用技能总结(持续更新)
  5. 数据建模和数据库设计
  6. Http调用第三方接口的两种方式实例《超详细!!!》***
  7. 目录|Java3y最全目录(2019-6-13更新)
  8. 多媒体计算机设计原则,多媒体课件的设计原则
  9. 智能环境监控系统解决方案及应用背景
  10. java基础---悲观锁和乐观锁