const

const修饰变量

  1. const修饰变量,功能是对变量声明为只读特性,并保护变量值以防被修改。
  2. const修饰变量,还起到了节约空间的目的,通常编译器并不给普通const只读变量分配空间,而是将他们保存在符号列表中,无需读写内存操作,程序执行效率也会提高。
const int i = 5;
int const i = 5;

const修饰数组

  1. const修饰数组,表明此数组具有只读性,一旦被更改程序会出错。
const int array[5] = {0,1,2,3,4};
int const array[5] = {0,1,2,3,4};

const修饰指针

  1. const修饰指针,第一种是限定指向空间的值不可修改。
int i = 5;
int const *p1 = &i;
  1. const修饰指针,第二种是限定指针不可修改。
int k = 10;
int * const p2 = &k;

对于指针p1,const修饰的是p1,即p1指向的空间的值不可改变,例如p1 = 20;就是错误的用法;但是p1的值是可以改变的,例如p1 = &k;则没有任何问题。
对于指针p2,const修饰的是p2,即指针本身p2不可更改,而指针指向空间的值是可以改变的,例如 *p2 = 15; 是没有问题的,而p2 = &i;则是错误的用法。

const修饰函数参数

  1. const 修饰函数参数对参数起限定作用,防止其在函数内部被意外修改,所限定的参数可以是普通变量,也可以是指针变量。
void fun(const int x)
{...x = 10; //对x的值进行了修改,错误
}
void fun(const int *p)
{...(*p)++; //对p指向空间的值进行了修改,错误
}

【嵌入式C语言系列】关键字详解【const】相关推荐

  1. C语言的关键字 详解

    一.C语言的关键字 C语言中的32个关键字及其意思如下: 由 ANSI 标准定义的C 语言关键字共32 个.根据关键字的作用,可以将关键字分为数据类型关键字和流程控制关键字两大类. 1.数据类型关键字 ...

  2. 【C语言】初始C语言系列 代码详解 _ 编程入门 _【内附代码和图片】_ [初阶篇 _ 总结复习]

    [前言] 本篇文章为初始C语言部分,C语言是编程的入门语言,所以也说是编程入门: 学好C语言的入门内容,才能真正的入门编程,而C语言的学习对于刚入门的同学还是有一些难度的,需要踏踏实实的自己去理解. ...

  3. C语言保留字(关键字)详解

    保留字(reserved word) 保留字又称关键字. 指在高级语言中已经定义过的字,使用者不能再将这些字作为变量名或过程名使用. 每种程序设计语言都规定了自己的一套保留字. 例如:BASIC语言规 ...

  4. 【老九学堂】【初识C语言】C语言保留字(关键字)详解

    保留字(reserved word) 保留字又称关键字. 指在高级语言中已经定义过的字,使用者不能再将这些字作为变量名或过程名使用. 每种程序设计语言都规定了自己的一套保留字. 例如:BASIC语言规 ...

  5. C语言volatile关键字详解

    volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据.如果没有volatile关键字,则编译器可能优化读取和存储 ...

  6. MySQL查询语种关键字_SQL——SQL语言全部关键字详解

    http://blog.csdn.net/quinnnorris/article/details/71056445 数据库中我们做常用的就是SQL基本查询语言,甚至有些人认为数据库就是SQL,SQL就 ...

  7. c语言extern关键字详解

    在c语言中代码的执行顺序是从上往下执行的,如果定义的函数或者变量在调用之后,那么调用的时候编译就会找不到需要使用的变量.这样就会出现错误,如下代码: #include<stdio.h>in ...

  8. c语言所有关键字作用,void_C语言void关键字详解

    void类型修饰符(type specifier)表示"没有值可以获得".因此,不可以采用这个类型声明变量或常量.void 类型可以用于下面各小节所描述的目的. void用于函数声 ...

  9. C语言struct关键字详解—结构体

    struct 是个神奇的关键字,它将一些相关联的数据打包成一个整体,方便使用. 在网络协议.通信控制.嵌入式系统.驱动开发等地方,我们经常要传送的不是简单的字节流(char 型数组),而是多种数据组合 ...

  10. C++/C语言sizeof关键字详解

    目录 sizeof关键字 主要功能 常见用法 与基本数据类型的相关的内存空间大小的求解 与数组相关的内存空间大小的求解 在数组的定义处 在具体函数的中 运行实例 与指针的相关的变量所占内存空间大小的求 ...

最新文章

  1. 一文看懂 Bahdanau 和 Luong 两种 Attention 机制的区别
  2. invokeRequired属性和 invoke()方法
  3. 宇宙第一 IDE Visual Studio 2019 正式发布
  4. 如何提升微服务的幸福感?
  5. Python图像处理工具——PIL、opencv、matplotlib
  6. 添加多个tomcat服务目录
  7. n3k配置vpc是否还需要配置hsrp_HSRP
  8. 使用NodeJS调用Dubbo工程
  9. java 引用类型 String_java基础之 数据类型 值传递 引用传递 String 四种引用类型...
  10. mapinfo将北京54坐标系转WGS84坐标系
  11. 数据库系统原理与应用教程(019)—— MySQL 的配置文件
  12. centos7安装python3.7.4_基于centos7 安装python3.6.4出错的解决方法
  13. Powerbi环比分析及其修正
  14. android标题栏添加按钮_如何从iPhone或Android设备访问PC
  15. 如何打造一款工业级5G CPE+WiFi6路由器-5G工业网关解密
  16. GIC spec之ITS和LPI中断5
  17. 实操解决Virtualbox中centos虚拟机硬盘扩容的问题
  18. linux nginx rtmp 死机,nginx rtmp 实时直播视频流 发布者网络不稳定导致无法直播问题...
  19. 雅思写作 Day 1 阅读笔记
  20. iphone网页唤醒支付宝_如何确保iPhone警报唤醒您

热门文章

  1. C语言及程序设计概述
  2. 这些人和事,埋葬了雅虎中国
  3. Adobe Reader历史版本安装包下载
  4. 【AvalonDock】布局控件使用教程
  5. http动态代理转socks5怎么获取?
  6. 厦门大学人工智能研究院招收2022年推荐免试研究生
  7. android 壁纸改变回调,android_launcher的源码详细分析和壁纸修改
  8. VC++ 设置桌面壁纸
  9. QQ获取好友列表接口 -
  10. 一、最简单的神经网络--Bp神经网络