设为首页收藏本站
查看: 134|回复: 1

C语言简明知识系列十一(上):指针

[复制链接]
  • TA的每日心情
    开心
    2020-7-2 16:41
  • 签到天数: 45 天

    [LV.5]常住居民I

    发表于 2020-6-8 12:59:44 | 显示全部楼层 |阅读模式
    在C/C++语言中,指针给了我们很大的操作空间,灵活的使用指针,将使编码更加灵活。所以每一个学习C/C++的人都应该对指针有所了解。
    1、指针的定义
    指针是一个变量,它指向另一个变量的地址,在C/C++中,变量的地址可以用&符号进行获取,输出时使用%p进行输出。
      指针的定义形式为:
    1.   datatype  *point;
    复制代码

      下面这个例子就是获取变量地址输出
    1. #include <stdio.h>
    2. int main()
    3. {
    4.         int iValue = 100;
    5.         int* pIntValue;
    6.         pIntValue = &iValue;//整型指针指向一个整型变量
    7.         printf("变量iValue的地址为:%p \n", &iValue);
    8.         printf("指针指向的地址为:%p \n", pIntValue);
    9.         printf("指针指向的值为:%d \n", *pIntValue);
    10.     return 0;
    11. }
    复制代码


    上面的代码定义了一个整型变量、一个整型指针,指针指向整型变量,并进行输出,
    运行一下,可以看到:指针和整型变量指向的地址是一样的。指针指向的内存地址保存的值为100.
    2、空指针
    在实际编码中,指针的错误使用会代码很严重的灾难,例如,空指针。空指针是指没有指向任何内存地址。如下所示:
    1. #include <stdio.h>
    2. int main()
    3. {
    4.         int* pIntValue=NULL;
    5.         printf("指针指向的地址为:%p \n", pIntValue);
    6.         //printf("指针指向的值为:%d \n", *pIntValue);
    7.     return 0;
    8. }
    复制代码


    在想象一下,如果对这个空指针的值进行打印会发生什么事呢?下面将上面被注释的代码重新放开,再次运行代码,将抛出了一个异常。

    C/C++编码时经常会出现异常,对于异常的捕获和处理后面单独进行说明,这里不做过多解释。

    3、野指针
    野指针可以理解成,在编码时指针已经使用完了,但是没有对指针进行回收,导致指针指向了一块不可知的地址,这种情况下,如果继续使用指针,指针指向的值可能时随机的,发生问题时对问题进行定位难度也很大。它可能不会立马产生异常,后面又异常时也不是一开始出现问题的地方给定位问题带来很大的难度,因此,在使用指针的时候要保持良好的编码习惯,切记不要乱用指针。
  • TA的每日心情
    开心
    4 天前
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    发表于 2020-7-1 11:10:09 来自手机 | 显示全部楼层
    学习了 感谢楼主分享
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    站长推荐 上一条 /3 下一条

    红盟社区--中国红客联盟 

    Processed in 0.053547 second(s), 15 queries.

    站点统计| 举报| Archiver| 手机版| 黑屋 |   

    Powered by HUC © 2001-2017 Comsenz Inc.

    手机扫我进入移动触屏客户端

    关注我们可获取更多热点资讯

    Honor accompaniments. theme macfee

    快速回复 返回顶部 返回列表