介绍

指针是内存单元的 编号,地址就是指针。一句话通过指针和指针变量 可以在不同函数间接 对数据进行操作

快速入门  

       int * p:p是变量名,p变量的数据类型是int * 类型,所谓int * 类型实际就是存放int变量地址的类型,不表示定义了一个名字叫*p的变量

       &i: & 取地址运算符,这里指取i 的地址

       *p:* 取地址变量所指向的实际地址里存放的数据

#include <stdio.h>

int main(void)
{
    int * p;  //p是变量的名字,int * 表示p变量存放的是int类型变量的地址
              //int * p:不表示定义了一个名字叫做*p的变量
              //int * p:p是变量名,p变量的数据类型是int *类型,即int * 类型实际就是存放int变量地址的类型
    int i = 3;
    p = &i;
    /*
        1.p保存了i的地址,因此p指向i;;
        2.p不是i,i也不是p,更准确的说:修改p的值不影响i的值,修改i的值也不会影响p的值
            *+指针变量 就完全等同于 普通变量
    */
    printf("%d\n", *p);
    return 0;
}
/*
输出结果:
3
*/

内存图:

 

指针的作用

  1. 表示一些复杂的数据结构;
  2. 快速的传递数据;
  3. 使函数返回一个以上的返回值;
  4. 能直接访问硬件;
  5. 能够方便的处理字符串;
  6. 是理解面向对象语言的基础。

总结:指针是c语言的灵魂。

指针的定义

  • 指针:指针就是地址,地址就是指针;指针变量就是存放地址的变量  
  • 地址:内存单元的编号
    • 从零开始的非负整数
    • 范围:4G  [0--(4G-1)](下面两图解释为什么地址范围是4G)

cpu与内存条交互过程:

cpu与内存条通过地址总线的交互过程图:

指针的分类

  1. 1.基本类型的指针;
  2. 2.指针和数组;
  3. 3.指针和函数;
  4. 4.指针和结构体;
  5. 5.多级指针。
posted on 2015-04-04 21:29  骨豆猫宁  阅读(178)  评论(0编辑  收藏  举报