码迷,mamicode.com
首页 > 其他好文 > 详细

L1--指针

时间:2015-04-04 22:35:02      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:

介绍

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

快速入门  

       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.多级指针。

L1--指针

标签:

原文地址:http://www.cnblogs.com/guDouMaoNing/p/4306656.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!