C语言|const的使用
写出优秀的代码,少不了使用const~const的使用,可以进行类型检查,保护被修饰的东西,防止意外修改,增强程序的健壮性(鲁棒性)。在这篇文章中,我们简要介绍一下const的使用。
目录
前言
一、const修饰的常变量
二、深入学习const
我们首先试一下无const的情况:
接下来,我们尝试加上const:
①const加在前面:
②const放在后面:
总结
前言
const的使用,我们就简单地说一下重要的内容,细枝末节就不多讲了。
一、const修饰的常变量
const修饰的常变量在C语言中知识在语法层面限制了变量不能直接被改变,但是它本质上还是一个变量,所以叫常变量。
我们测试一下:
#include<stdio.h>
int main()
{const int a = 14;//这边写成int const a=14;也是可以的a = 13;//errorreturn 0;
}
编译器就会给我们报这样子的错误:
由此,我们也简要了解了const。
二、深入学习const
我们首先试一下无const的情况:
#include<stdio.h>
int main()
{int n = 10;int m = 20;int* p = &n;*p = 20;p = &m;printf("%d %d", n, m);return 0;
}
我们得出的结果是:
接下来,我们尝试加上const:
①const加在前面:
#include<stdio.h>
int main()
{int n = 10;int m = 20;const int* p = &n;*p = 20;p = &m;printf("%d %d", n, m);return 0;
}
不出意外,编译器会报错:
显示第7行错了,我们先把第7行,*p+20;注释掉,就没有报错。
现在的结果是:
可见, const int* p = &n这一语句,保证指针指向的内容不能通过指针来改变,但是指针变量本身内容可变。
②const放在后面:
#include<stdio.h>
int main()
{int n = 10;int m = 20;int* const p = &n;*p = 20;p = &m;printf("%d %d", n, m);return 0;
}
我们编译器依然是报错,但是报错的行数变了!变成了第8行。
我们现在把第8行先注释掉,得出的结果就是这个样子。
可见int* const p = &n;这一语句,修饰的是变量本身,保证了指针变量的内容不能修改,但是指针指向的内容可以通过指针改变。
总结
#include<stdio.h>
int main()
{int n = 10;int m = 20;const int* const p = &n;*p = 20;p = &m;printf("%d %d", n, m);return 0;
}
const int* const p = &n;→两个都限制。n说,我不仅不想给你花一分钱,我还不让你换男朋友。
C语言|const的使用相关推荐
- C语言const使用
C语言const使用 作者:delnabla 日期:2009-06-11 字体大小: 小 中 大 看了几篇介绍const的文章,这篇讲解的比较透彻易懂,摘录过来! const是一个C语言的关键字,它限 ...
- C语言const专题
C语言const专题 const基础知识(用法.含义.好处.扩展) 含义 Const好处 const基础知识(用法.含义.好处.扩展) int main() {const int a; // int ...
- C语言 const 和 define 区别 - C语言零基础入门教程
目录 一.const 使用 1.const 修饰变量 2.const 修饰指针 3.const 修饰在函数名前面 4.const 修饰在函数名后面 5.const 修饰函数参数 二.define 使用 ...
- C语言 const 修饰函数返回值 - C语言零基础入门教程
目录 一.const 简介 1.const 修饰变量 2.const 修饰指针 二.const 修饰在函数名前面 三.const 修饰在函数名后面 四.猜你喜欢 零基础 C/C++ 学习路线推荐 : ...
- C语言 const 修饰指针 - C语言零基础入门教程
目录 一.const 简介 二.const 修饰指针 1.const int *p 2.int const *p 3.int * const p 4.const int * const p 三.猜你喜 ...
- C语言 const 修饰变量 - C语言零基础入门教程
目录 一.const 简介 二.const 实战 1.使用 const 修饰变量必须初始化 2.使用 const 修饰变量不初始化 3.修改 const 修饰变量的值 三.重点提示 四.猜你喜欢 零基 ...
- C语言const:禁止修改变量的值
C语言const:禁止修改变量的值 有时候我们希望定义这样一种变量,它的值不能被改变,在整个作用域中都保持固定.例如,用一个变量来表示班级的最大人数,或者表示缓冲区大小.为了满足这一要求,可以使用co ...
- C/C++ 语言 const 关键字
C/C++ 语言 const 关键字 1. Constants - 常量 ANSI C 允许声明常量,常量的样子和变量完全一样,只是它们的值不能被修改.使用 const 关键字声明常量: const ...
- C语言 const 修饰函数参数 - C语言零基础入门教程
C语言 const 修饰函数参数 - C语言零基础入门教程 目录 一.const 简介 1.const 修饰变量 2.const 修饰指针 3.const 修饰在函数名前面 4.const 修饰在函数 ...
- 计算长方形体积c语言const,c语言const
<OOC>笔记(1)--C语言const.static和extern的用法 笔记(1)--C语言const.static和extern的用法 C语言中const关键字用法不少,我只喜欢两种 ...
最新文章
- bartender一行打印两个二次开发_C++ 智能指针和二叉树:图解层序遍历和逐层打印二叉树...
- Oracle 统计信息(1)
- Spring中获取Session的方法汇总
- Linux 下软件的安装
- 《》猿从程序书评项目经理-猿自办节目
- 【SDL的编程】VC环境搭建
- Hbuilder问题记录
- java分布式特点_java分布式架构是什么?分布式架构的优缺点有哪些?
- 使用python修改微信支付宝运动步数
- 国际结算三大方式之一——托收
- Vmware安装MacOS提示请选择您要安装的macOS的磁盘
- Yourkit 监控Jetty(stand-alone)
- iphone icloud无法载入储存空间信息
- 美团数据治理一体化实践
- 我的世界网易服务器修改世界,我的世界:1.16改变两个版本更新频率?网易版异常乱封大批账号?...
- C++ std::ios::tie
- 密码学笔记5 非对称密钥算法
- 西邮linux面试题,西邮Linux兴趣小组纳新免试题! come on!
- 台式计算机鼠标不动,台式电脑鼠标不动了怎么办 鼠标不动了怎么用键盘修复 鼠标不亮了也动不了了怎么办...
- 如何在Mac上禁用屏幕快照预览缩略图