• 关于const的用法简单举列子介绍


    关于const的简单用法举列子介绍!

    对于const,我想大部分人也是很陌生,毕竟在C语言语法中很少见,但是,笔者今天在学习C语言基础知识时候,见到了,经过一番苦思,及参考文献得到了一手的资料,于是兴趣走起,博客一篇来书写笔者的兴奋之情!

    下面来看一下,笔者在“const” - C++ 搜索结果 (cplusplus.com)网站上面的搜索结果!https://cplusplus.com

     很简单,最大的结果便是没有结果,对于const,我想应该不是C语言中的库函数,所以便在该网站上找不到所需要的内容,但是经过摸索,仍然还是有迹可循!!

    下面通过一段浅显易懂的代码来进行理解:请跟着笔者文章来理解const:

    1. #include
    2. int main()
    3. {
    4. int a = 10;
    5. a = 20;
    6. printf("a=%d\n", a);
    7. return 0;
    8. }

    我想,这段代码,读者100%都能理解

     对于代码的最后运转结果也没有任何疑问,毕竟这个是刚开始学习C语言时候就接触的内容!

    下面对于const的讲解就建立在该段代码的基础之上,请大家仔细辨别:

    1. #include
    2. int main()
    3. {
    4. const int a = 10; //加const前缀
    5. a = 20;
    6. printf("a=%d\n", a);
    7. return 0;
    8. }

    在上述代码中,笔者做了一个稍微的改变,仅仅增加了一个const前缀,但是却.......??

     对于该段代码vs直接就给报错,根本就是运行不出来,const在该段代码中,将a=10进行锁死了,不允许更改,根本就不能进行再次给a赋值!

    有人或许会说,const不是c语言的语法,加上const前缀,肯定运行不出来,但是情况往往出现在意料之外:请看笔者用指针的方法来书写的代码:

    1. #include
    2. int main()
    3. {
    4. int a = 10;
    5. int* pa = &a;
    6. *pa = 20;
    7. printf("a=%d\n", a);
    8. return 0;
    9. }

    这个是用指针的方法,通过&(取地址操作符)取a的地址,然后在进行赋值,这段代码对于初步学习过指针的人而言,也不是什么大问题!

    代码的运行结果仍为a=20;

     但是,看似指针与笔者想要表达的:关于const的简单举列子介绍,毫无关联,但是将const  int  a=10通过指针来改变,将会出现意想不到的结果!

    1. #include
    2. int main()
    3. {
    4. const int a = 10;
    5. int* pa = &a; //通过指针方法来进行取地址等操作
    6. *pa = 20;
    7. printf("a=%d\n", a);
    8. return 0;
    9. }

    前面已经书写过,用普通方法来打印const  int  a=10的值已经没有办法,直接报错!

    但是用指针的方法却是可以打印出来!

    代码的运行结果如下所示:

     这个方法还是通过取a的地址来进行更改a的数值!使得直接绕过了const的这个语法限制

    但是:当对

    int* pa = &a;   //通过指针方法来进行取地址等操作

    这一段代码前面也加const前缀时候,又出现了锁死的情况,也是直接报错不能进行更改!

    1. #include
    2. int main()
    3. {
    4. const int a = 10;
    5. const int* pa = &a;
    6. *pa = 20;
    7. printf("a=%d\n", a);
    8. return 0;
    9. }

    下面是具体的代码运转报错情况!

     到此为止,笔者所知道的关于const的用法已经描述完,若有不足之处,请联系笔者更改

  • 相关阅读:
    “蔚来杯“2022牛客暑期多校训练营2,签到题GJK
    输电线路的继电保护整定计算及装置
    MATLAB实战Sobel边缘检测(Edge Detection)
    web前端进阶:<6>一个自我简介的小程序
    ONNX:Linux系统中使用onnxruntime
    【Web】记录CISCN 2023 西南半决赛 seaclouds题目复现
    curl 工具的使用
    手游模拟器长时间运行后,游戏掉帧且不恢复
    BIM系统平台建设及实施方案
    手写RPC框架
  • 原文地址:https://blog.csdn.net/weixin_64308540/article/details/126190305