博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言的const限定符
阅读量:6281 次
发布时间:2019-06-22

本文共 770 字,大约阅读时间需要 2 分钟。

hot3.png

        const限定的内容真的无法修改吗?

        关键字const并不能把变量变成常量。在一个符号前加上const限定符只是表示这个符号不能被赋值,也就是它的值对于这个符号来说是只读的,但它并不能防止通过程序的内部(或外部)来修改这个值。

        上代码,测试:

#include 
int main(void){    const int a = 10;               // const 限定    int *pa = &a;                   // 使用未限定的指针指向a    printf("a = %d; (*pa) = %d\n", a, *pa);    *pa = 20;                       // 通过指针来修改const限定的值    printf("a = %d; (*pa) = %d\n", a, *pa);    return 0;}

        gcc编译一下(gcc 4.8.2 Ubuntu14.04 64bit)

$ gcc 02.c02.c: In function ‘main’:02.c:7:12: warning: initialization discards ‘const’ qualifier from pointer target type [enabled by default]  int *pa = &a;     // 使用未限定的指针指向a

        编译时出现了警告。

        然后执行程序:

$ ./a.out a = 10; (*pa) = 10a = 20; (*pa) = 20

        被const限定的a的值,通过一个指向它的指针被修改了。

转载于:https://my.oschina.net/lowkey2046/blog/339989

你可能感兴趣的文章
Android程序开发初级教程(一) 开始 Hello Android
查看>>
使用Gradle打RPM包
查看>>
“我意识到”的意义
查看>>
淘宝天猫上新辅助工具-新品填表
查看>>
再学 GDI+[43]: 文本输出 - 获取已安装的字体列表
查看>>
nginx反向代理
查看>>
操作系统真实的虚拟内存是什么样的(一)
查看>>
hadoop、hbase、zookeeper集群搭建
查看>>
python中一切皆对象------类的基础(五)
查看>>
modprobe
查看>>
android中用ExpandableListView实现三级扩展列表
查看>>
%Error opening tftp://255.255.255.255/cisconet.cfg
查看>>
java读取excel、txt 文件内容,传到、显示到另一个页面的文本框里面。
查看>>
《从零开始学Swift》学习笔记(Day 51)——扩展构造函数
查看>>
python多线程队列安全
查看>>
[汇编语言学习笔记][第四章第一个程序的编写]
查看>>
android 打开各种文件(setDataAndType)转:
查看>>
补交:最最原始的第一次作业(当时没有选上课,所以不知道)
查看>>
Vue实例初始化的选项配置对象详解
查看>>
PLM产品技术的发展趋势 来源:e-works 作者:清软英泰 党伟升 罗先海 耿坤瑛
查看>>