C/C++知识点之C语言细节28(const变量初始化、数组大小用const变量细节、const变量与#define宏、volatile修饰)
小标 2018-12-03 来源 : 阅读 1264 评论 0

摘要:本文主要向大家介绍了C/C++知识点之C语言细节28(const变量初始化、数组大小用const变量细节、const变量与#define宏、volatile修饰),通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

本文主要向大家介绍了C/C++知识点之C语言细节28(const变量初始化、数组大小用const变量细节、const变量与#define宏、volatile修饰),通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

主要内容:const变量初始化、数组大小用const变量细节、const变量与#define宏、volatile修饰
一、const变量初始化时必须赋值
二、const变量在C++中可以做数组大小元素、在C中不行,因为它是变量
三、const和#define区别:内存分配
四、volatile修饰一些变量:易被操纵系统、硬件、多线程修改的变量

#include 

int main()
{
/* 
  测试1 
*/ 
 const int b;  // 不初始化会报错 
// b = 2;
 
/* 测试2 
 *C语言中以下定义数组大小会报错,可看出c语言中const修饰的num是变量,不是常量 
 * 而C++中则编译通过可以用 
 */ 
 const int num = 2;
// int a[num] ={3,4}; 

/*
  测试3 
*/
 #define M 4   // 宏常量 
        const int N = 5;  //此时并未将N放入内存中,保存在符号表中 
 int i = N;   // 此时为N分配内存,以后不再分配 
 int I = M;   // 预编译起见进行宏替换,分配内存 (M没有类型,怎么分配内存) 
 int j = N;   // 没有内存分配 
 int J = M;   // 再次宏替换,有一次分配内存 
 
 
/*
   测试4 
   在做下面测试时,vc++6.0一般Debug模式没有优化,但可以同时生成Debug和Release版做测试 
*/
 int test = 10;
 int test_1 = test;
 int test_2 = test;  // 在这里赋值时,编译器不会生成汇编重新从内存读取test值(在两次赋值间test没有作为左值,否则不优化) 
 
 volatile int t;
 int t_1 = t;
 int t_2 = t;   // 在这里赋值时,t重新从内存读取 
 
 const volatile int temp;   // temp只读,可以表示只读寄存器 
}输出:
此例子无输出

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C/C+频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程