被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。它可以修饰函数的参数、返回值,甚至函数的定义体。

作用:

1>修饰输入参数

a.对于非内部数据类型的输入参数,应该将“值传递”的方式改为“const引用传递”,目的是提高效率。例如将void Func(A a) 改为void Func(const A &a)。

b.对于内部数据类型的输入参数,不要将“值传递”的方式改为“const引用传递”。否则既达不到提高效率的目的,又降低了函数的可理解性。例如void Func(int x) 不应该改为void Func(const int &x)。

2>用const修饰函数的返回值

a.如果给以“指针传递”方式的函数返回值加const修饰,那么函数返回值(即指针)的内容不能被修改,该返回值只能被赋给加const修饰的同类型指针。

如对于: const char * GetString(void);

如下语句将出现编译错误:

char *str = GetString();//cannot convert from 'const char *' to 'char *';

正确的用法是:

const char *str = GetString();

b.如果函数返回值采用“值传递方式”,由于函数会把返回值复制到外部临时的存储单元中,加const修饰没有任何价值。 如不要把函数int GetInt(void) 写成const int GetInt(void)。

3>const成员函数的声明中,const关键字只能放在函数声明的尾部,表示该类成员不修改对象.

说明:

const type m; //修饰m为不可改变

示例:

typedef char * pStr; //新的类型pStr;

char string[4] = "abc";

const char *p1 = string;

p1++; //正确,上边修饰的是*p1,p1可变

const pStr p2 = string;

p2++; //错误,上边修饰的是p2,p2不可变,*p2可变

同理,const修饰指针时用此原则判断就不会混淆了。

const int *value; //*value不可变,value可变

int* const value; //value不可变,*value可变

const (int *) value; //(int *)是一种type,value不可变,*value可变

//逻辑上这样理解,编译不能通过,需要tydef int* NewType;

const int* const value;//*value,value都不可变

c语言的关键字怎么编辑,C语言的关键字相关推荐

  1. c语言编程基础------0.0.1c语言简易介绍(百度百科)

    本文主要来自百度百科 C语言是目前世界上流行.使用最广泛的 面向过程的高级 程序设计语言. C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言,许多大型应用软件都 ...

  2. java语言只保留了什么_java语言的保留的关键字【小白必读】

    关键字是编程语言里事先定义好并赋予了特殊含义的单词,也称作保留字.和其他语言一样,Java中保留了许多关键字,例如, class. public等,下面列举的是Java中所有的关键字. abstrac ...

  3. goto在c语言中的作用,关键字goto在C语言中的使用

    1.goto关键字基础知识关键字goto从字面的意思就是"去哪里"的意思,专业一点的话表示无条件跳转的意思(有学过汇编的小伙伴应该会觉得非常像jump指令),在C语言中的使用格式是 ...

  4. notepad++是什么?用notepad++来编辑c语言代码

    notepad++是一种小且效率高的文本编辑器,用notepad++来编辑c语言我介绍二种方法:一种是和tcc,另一种是和MinGW. tcc下载链接:https://pan.baidu.com/s/ ...

  5. java语言中的标识符_Java语言基本语法(一)————关键字标识符(Java语言标识符命名规范Java语言的包名、类名、接口名、变量名、函数名、常量名命名规则 )...

    一.关键字 关键字的定义和特点 定义:被Java语言赋予特殊含义,用做专门用途的字符串(单词). 特点:关键字中所有字母均为小写 下面列举一些常用的关键字. 用于定义数据类型的关键字:byte.sho ...

  6. c语言关键字中文意思,C语言的32个关键字是什么意思啊

    C语言的32个关键字是什么意思啊 32个关键字是什么意思有谁知道的要简洁一点的 更新时间:2019-06-03 22:54 最满意答案 1. 数据类型关键字(12个): (1). char :声明字符 ...

  7. c语言中关键字static_了解C ++中Static关键字的变体

    c语言中关键字static Hello, folks! Today we will be unveiling another important aspect in the series of our ...

  8. python语言的保留字有哪些_Python保留字(关键字)一览表

    与 C.C++.Java.C# 等语言不同,Python 没有定义常量的关键字,意即 Python 中没有常量的概念.为了实现与其他语言中功能相近的常量,可以使用 Python 面向对象的方法编写一个 ...

  9. c语言中关键字的含义,c语言中的关键字有哪些?有什么含义?

    c语言中的关键字有哪些?有什么含义? 发布时间:2020-04-23 09:33:30 来源:亿速云 阅读:174 作者:小新 这篇文章主要介绍了c语言中的关键字有哪些?有什么含义?,具有一定借鉴价值 ...

  10. 初识C语言(1)(2)(3)(4) C语言入门 保姆级教程 变量 常量 字符串 转义字符 操作符 关键字 字符串 指针 函数 结构体 数组 选择语句 循环语句

    一.如何写C语言代码 1.编译器 2.创建项目 3.创建源文件 4.写代码 5.编译+链接+运行 项目名字不要汉语,不要特殊字符,不要加空格,项目路径一般为你想要的路径 C语言中,一般创建.c源文件, ...

最新文章

  1. [Swift]LeetCode75. 颜色分类 | Sort Colors
  2. matlab关于噪声课设,基于matlab的有噪声的语音信号处理的课程设计.doc
  3. Clustered Data ONTAP Fundamentals课程第一单元学习笔记(续3)
  4. Java泛型初探————泛型通配
  5. html段落前的空格,HTML空格:空格前后
  6. 利用SAP 0day,四分钟内黑掉华尔街
  7. WORD的POI处理与原理
  8. 如何让微博营销更具效力
  9. macOS Mac10.15修改登录界面背景
  10. JavaScript自动切换并播放视频 | Tampermonkey
  11. 解决云帆小说下载阅读器不能下载https网址的问题
  12. html 给文字加图片背景,如何给文字添加背景图?给文字填充图片背景色的操作方法...
  13. mysql数据库系统时区_mysql 杂记 —— 时区问题
  14. Android判断有无外置SD卡(TF卡),并读写文件
  15. npm start 报错解决方案
  16. pip 和 conda 什么区别?
  17. sql注入——布尔注入
  18. 关于模型的过拟合与欠拟合
  19. 让智慧物联赋能高效生产, AIRIOT助力数字化油田转型升级
  20. 解决800A0046没有权限问题

热门文章

  1. 第一次敲hdu蟠桃树和第二次的区别
  2. 深度学习与硬件GPU,软件框架关系及相关概念解析
  3. Selectsort Tournamentsort Heapsort
  4. Ehcache 3.7文档—基础篇—XML Configuration
  5. 【洛谷习题】售货员的难题
  6. Python函数声明以及与其他编程语言数据类型的比较
  7. WinMM.dll 函数汇总
  8. 字符编码(一):序言
  9. win7 C盘空间越来越小 Windows文件夹变大的问题
  10. cocos2d-x(概括)