| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> C语言 总结const的用法 -> 正文阅读 |
|
[C++知识库]C语言 总结const的用法 |
总结const的用法1 介绍const关键字是constant的缩写,翻译为常量、常数。在C语言中const的作用很强大,它可以修饰变量、数组、指针、函数参数等。 1.1 const修饰变量
发现const 修饰的变量,随后试图修改num的值,结果出现红色波浪线,编译器提醒我们:表达式必须是可修改的左值。 所以我们得出结论:const修饰的变量,不能被修改。 const修饰的变量就一定不能被修改吗???
运行结果 通过上图我们发现num的值被修改了,通过指针可以间接的修改const修饰的变量。 但是运行时会出现警告:warning C4090: “初始化”: 不同的“const”限定符。 是因为num类型是const修饰,但是p是整型指针变量 , 类型不同。所以通过下面强转就没警告了。 改进后的代码
总结:const修饰的变量不能被直接修改 1.2 const修饰数组
表示const修饰的数组也不能被修改。 通过上面1.1const修饰变量的分析,同理也联想到:指针是否可以修改数组的内容。结果如下:
不难发现,指针可以修改。和1.1节出现结果一样,同样运行时程序出现了警告:warning C4090: “初始化”: 不同的“const”限定符,同样的警告出现了。 经过强转后:
总结:const修饰数组时,其值不能被直接修改 1.3 const修饰指针此部分分为两种情况去分析:
此时,通过上图容易发现const修饰指针指向的内容一旦修改,就会自动报错,所以*p(指针指向的内容不能被修改),但指针变量p本身是可以被修改的。 2、
此时,const修饰的是指针p本身,所以指针本身不能被修改,但是指针所指向的内容*p可被修改 1.4 const修饰函数参数
const修饰函数参数,对参数起到限定的作用, 通过发现指针也能修改其值。 总结:const修饰函数参数,本质上和修饰变量和指针一样。表示其值不能被直接修改。 2 const对程序的影响可以发现,在*p下面出现了红色波浪线,让上述的错误提前出现,避免程序在运行时出错。 3 总结
补充内容
区别: 原来的代码使用了指向只读字符串字面值的指针;而在第二段代码中,用字符串字面值初始化了一个数组,从而得到了这些字母的副本,这样就可以随意修改他们了。 |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 13:39:11- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |