1. const修饰整型变量

我们知道,const是一个关键词,在编译的时候起效果。它所修饰的常变量是C语言常量中的一种。
首先通过例子来了解const的用法。

int main()
{const int num = 10;//int与const的位置可换num = 20;printf("%d\n", num);return 0;
}

这个时候,程序马上会报错,会提示:num必须是可修改的左值。因为在这段代码里,const修饰的是num,那就意味着num的值不能被修改。
那const修饰的常变量,都不能被修改吗?
我们来看这段代码:

int main()
{const int a = 10;int * p = &a;*p = 100;printf("%d", a);return 0;
}

我经过运行,得出这个运行结果为100,那也就是说,a虽然是被const修饰,但a的值却被改变了,很明显我们可以看出是通过指针p改变的。因此,我们可以得出一个结论:const修饰的常变量,不能被直接改变,但可以被间接改变。

2. const修饰指针变量

const 修饰指针变量有以下三种情况。

  • const 修饰指针指向的内容,则内容为不可变量。
const int *p = 8;
  • const 修饰指针,则指针为不可变量。
int a = 8;
int* const p = &a;
*p = 9; // 正确
int  b = 7;
p = &b; // 错误
  • const 修饰指针和指针指向的内容,则指针和指针指向的内容都为不可变量。(实际上是上面两种情况的合并)
int a = 8;
const int * const  p = &a;

关于const的用法相关推荐

  1. 【C 语言】const 关键字用法 ( 常量指针 - const 在 * 左边 - 修饰数据类型 - 内存不变 | 指针常量 - const 在 * 右边 - 修饰变量 - 指针不变 )

    文章目录 一.const 普通用法 二.常量指针 ( 指向 常量 的指针 | 被指向的内存不能被修改 ) 三.指针常量 ( 指针不能被修改 ) 三.指向 常量 的 指针常量 四.const 在 * 左 ...

  2. C语言中const的用法

    C语言中const的用法 基本解释         const是一个C语言的关键字,它限定一个变量不允许被改变.使用const在一定程度上可以提高程序的健壮性,另外,在观看别人代码的时候,清晰理解co ...

  3. C语言const的用法

    文章目录 1.const的用法 2.const与define的区别 3.const修饰函数的参数 4.获取视频教程 5.版权声明 1.const的用法 const是constant的缩写,意思是&qu ...

  4. C++中const关键字用法详解及实例和源码下载(一)

    最近在学习C++基础部分,看了两天书,已经看过了一遍,半知半解,回过头来重新看第二遍,深入了解一下C++的基础知识.现在读到了const关键字的用法,书上面讲解的时候并没有给出完整的实例,只是理论的讲 ...

  5. c语言const用法的位置与意义,const(c语言const的用法详解)

    const int *A; //const修饰指向的对象,A可变,A指向的对象不可变 怎么理解?. 呵呵,想法挺独特啊.const在声明变量时有四种用法:int x = 10;int y = 11.c ...

  6. c语言数组前const的作用,c语言中const的用法

    C语言作为一门新型高级编程语言,在计算机软件编程中具有较为广泛的应用和实现.下面小编就跟你们详细介绍下c语言中const的用法,希望对你们有用. c语言中const的用法如下: const的基本解释 ...

  7. const的用法,特别是用在函数前面与后面的区别!

    在普通的非 const成员函数中,this的类型是一个指向类类型的 const指针.可以改变this所指向的值,但不能改变 this所保存的地址. 在 const成员函数中,this的类型是一个指向 ...

  8. const的用法,特别是用在函数后面

    转自:https://www.cnblogs.com/azbane/p/7266747.html 但是不建议看原文,因为眼睛会瞎!!!!!! 在普通的非 const成员函数中,this的类型是一个指向 ...

  9. const的用法,特别是用在函数前面与后面的区别

    转自:https://www.cnblogs.com/azbane/p/7266747.html 在普通的非 const成员函数中,this的类型是一个指向类类型的 const指针.可以改变this所 ...

最新文章

  1. java设计模式--原始模型模式
  2. 据说这是中途接手别人项目时的场景
  3. 原生js监听input值发生变化
  4. Linux 服务器如何修改主机名
  5. Debug Tensorflow: TypeError: Cannot convert a symbolic Keras input/output to a numpy array.
  6. rank()over 函数的使用
  7. js 用submit()方法提交表单,页面闪退问题以及解决方法
  8. Unity3D核心类型一览
  9. java中的final的使用
  10. 华罗庚先生教会我如何学习
  11. 过期域名如何助力犯罪分子攻破企业防御
  12. ubuntu安装cairo
  13. python dict排序
  14. DenseNet解析
  15. 使用SecureCRT工具上传、下载文件的两种方法
  16. 批量word转pdf
  17. IPX5、IPX6、IPX6K冲水方向
  18. 电池SOC仿真系列-基于Simscape搭建的锂电池模型
  19. 基于Matlab的数字水印设计
  20. 斗鱼扩展--拦截广告,让网页加载更快(四)

热门文章

  1. Z-score 标准化(standardization)
  2. 浅聊最近几次的面试经历
  3. IDEA 使用补丁 patch
  4. 谷歌GOOGLE常用的搜索语法|挖掘站内信息
  5. 如何结合后台数据库 启动vue项目
  6. 逻辑回归(Logistic Regression, LR)简介
  7. 从2月14号开始,上传AppStore会碰到:Failed to locate or generate matching signing assets
  8. CMakeLists入门
  9. vue上传图片并预览
  10. Intellij Idea 将Java项目打包成jar