A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 嗨灬小凯 中级黑马   /  2015-4-26 23:34  /  776 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

c语言里的经典--指针

一​.所谓的指针,就是地址

        取地址运算符  &

        语法: &变量名

        值:指针

二.    指针类型的变量,就是存储地址的变量

     int num;   int变量,就是存储int类型数据的变量

     指针变量,指针类型的变量,存储指针数据的变量

    变量指针,变量的指针,就是变量的地址,即 &num

    指针是一个地址,但是指针类型的变量是要区分类型的(以后在说*****)

    如果要定义一个指向int类型的变量的指针

    存储int类型变量的地址的变量

​        int *变量名;

     此时变量"变量名"可以存储地址,但是要求地址是int类型变量的地址(默认是这样)

     注意:指针类型的变量是存储地址的,那么如何给指针类型的变量赋初值

    1, 定义的同时进行初始化

        int num = 10;

        int *iNump = #  // 初始化完成以后,指针类型的变量就指向num数据

    2, 先定义,再初始化

        int num = 10;

        int *iNump;      // 先定义

        iNump = #    // 后初始化, 注意指针类型的变量前没有星号*

     3, 先定义,使用的时候再初始化(难点,易错点)

        如果将来工作,第二个写法是有错的

        指针在使用的时候最大的特点是可以"随意的"访问内存

        不给指针变量初始化容易出现错误,对于没有初始化的指针,常常称其为"野指针"

        定义好指针以后用什么进行初始化?

        int *iNump = 12345;   // 不允许使用任意的数字

        规定使用数字0进行初始化

        int *iNump = 0;

        在 stdio.h 中定义了一个宏名 NULL 表示的就是空指针

        一般在初始化的时候建议使用它

        int *iNump = NULL;

三.指针的访问

    1, 直接访问,间接访问

                直接访问就是使用变量名进行访问里面的数据

            int num = 10;

            printf("%d\n", num);

        间接访问就是使用地址,来获取地址所指向的内存中的数据

            取值运算符 *

            语法:  *地址(*指针变量)

            int num = 10;

            int *p = #

            // 是p指向num,不是*p指向num

            printf("%d\n", *p);

     2, 间接访问是访问地址表示的数据,可以获取也可以修改

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马