常变量和符号常量的区别?常变量和文字常量的区别?
定义符号常量:#define PI 3.1415926 //没有分号
定义常变量 :const float PI=3.1415926;
符号常量和常变量的区别:
常变量:具有变量的特征是存在一个以变量名命名的存储单元,在一般情况下,存储单元中的内容是可以变化的。而对于常变量,在变量的基础上加了一个限定:存储单元中的内容不允许变化,仍然是有存储单元的。
符号常量:是使用一个字符串代替程序中出现的一个标识符,是编译时把所有的符号常量都替换成制定的字符串,它没有类型,在内存中也不存在以符号常量命名的存储单元。在其作用域内其值不能改变和赋值。
常变量具有变量的特征,它具有类型,在内存中存在着以它命名的存储单元,可以用sizeof运算符测出其长度。与一般变量惟一的不同是指定变量的值不能改变。用#define命令定义符号常量是C语言所采用的方法,C++把它保留下来是为了和C兼容。C++的程序员一般喜欢用const定义常变量。虽然二者实现的方法不同,但从使用的角度看,都可以认为用了一个标识符代表了一个常量。有些书上把用const定义的常变量也称为定义常量,但读者应该了解它和符号常量的区别。
常变量和文字常量的区别:
常量指值不可改变的量。在C/C++中常量分为两种:文字常量(Literal constant)和常变量(constant variable)。
文字常量和常变量的本质区别:文字常量编译之后存储在代码区,不可寻址,常变量存储在数据区,可寻址。
常变量:前面已经说明概念,它本身的存储区和普通变量的存储也没什么区别,只不过分类不同。
文字常量:文字常量又称为“字面常量”,包括数值常量、字符常量和符号常量。其特点是编译后写在代码区,不可寻址,不可更改,属于指令的一部分。
int& r=5;//编译错误
这条语句出现编译错误,原因是文字常量不可寻址,因而无法为文字常量建立引用。
下面这条语句又是合法的:
const int& r=5;
原因是编译器将一个文字常量转化成常变量的过程。在数据区开辟一个值为5的无名整型常变量,然后将引用r与这个整型常变量进行绑定
数值常量:包括整型常量和实型常量。整型常量就是指常整数,有十进制、八进制、十六进制三种表示形式。实型常量只采用十进制小数形式和指数形式表示,包括单精度浮点数(float)、双精度浮点数(double)和长双精度浮点数(long double)。
int a=4;//4为文字数值常量中的整型常量
float b=4.4//4.4为单精度实型常量
double c=1.4e10//1.4e5表示的值为1.4×10^5,双精度实型常量
字符常量:指单个ASCII码字符,有256个,如’a’和’b’。
符号常量:用标示符代表一个常量,使用之前必须定义。
#define NUM 100//NUM为符号常量,100为整型常量
enum Weekday{SUN, MON, TUES, WED, THU, FRI, SAT};//SUN,MON等均为符号常量
关于static我会自己再在后面去补充。
常变量和符号常量的区别?常变量和文字常量的区别?相关推荐
- C++ 文字常量与常变量
以下代码编译运行平台是 Windows 64bits+VS2017. 使用 C++ 编程时,经常遇到以下几个概念:常量.文字常量.字面常量.符号常量.字符常量.常变量.字符串常量等,网上的资料描述的不 ...
- 2021-09-13 文字常量和常变量
1.2 文字常量和常变量 常量可以直观地理解成"值不可改变的量".在C++语言中,常量分为两种:文字常量(literal constant)和常变量(constant variab ...
- c语言中区别一般变量,C语言中,为了区别一般的变量,符号常量必须用
C语言中,为了区别一般的变量,符号常量必须用大写字母表示.(?) 答:错 ,维也纳古典乐派代表人物之一,欧洲古典主义时期作曲家.因其对古典音乐的重大贡献,对奏鸣曲式和交响曲套曲结构的发展和创新,而被后 ...
- SV学习笔记—变量及数组随机化约束常犯的错误
目录 1.有符号变量导致的随机化错误 2.变量溢出导致的随机化错误 3.数组的约束 3.1约束数组的size函数 3.2约束数组的sum函数 4.数组约束常犯错误 4.1有符号变量导致的错误 4.2溢 ...
- java变量与常量的区别_Java变量与常量
Java变量与常量 常量 常量是指在程序执行过程中始终保持不变的量. 定义语法 final 常量数据类型 常量名=常量初始值: 常量的分类:静态常量.成员常量和局部常量. public class d ...
- python学习之第三课时--基本数据类型及区别,变量
python学习之第三课时--基本数据类型及区别,变量 基本数据类型及区别 1. 数字类型(int) 数字型--变量值直接是数字,没有双引号"" 整数 2. 浮点数(float ...
- php的常量和变量的区别,变量和常量的区别_在php当中常量和变量的区别
摘要 腾兴网为您分享:在php当中常量和变量的区别,云集,悦读小说,游戏堂,手机管家等软件知识,以及glu金币,qq自动登录器,刷火车票软件,viber网络电话,e社保,角度测量软件,炒股手训练软件, ...
- php在类定义一个我静态变量,php中静态类与静态变量用法的区别分析_PHP教程
php中静态类与静态变量用法的区别分析 static是定义一个静态对象或静态变量,关于static 定义的变量或类方法有什么特性我们看完本文章的相关实例后就见分晓了. 1. 创建对象$object = ...
- vs2017开发ActiveX(主讲OCX)(十一)、类向导中MFC ActiveX添加方法、添加函数、添加变量、添加事件、添加属性、添加方法的区别
本文我们就来说说类向导中MFC ActiveX添加方法.添加函数.添加变量.添加事件.添加属性.添加方法的区别.这个问题曾经困扰过我. 此处是向CCreateOcxDemoApp类中添加成员变量,及成 ...
- java 成员变量(实例变量) 和类变量(静态变量)的区别
本文参考菜鸟教程的中的笔记部分 由static修饰的变量称为静态变量,其实质上就是一个全局变量.如果某个内容是被所有对象所共享,那么该内容就应该用静态修饰:没有被静态修饰的内容,其实是属于对象的特殊描 ...
最新文章
- numpy permutation排列组合方法
- 《科学美国人》评出2019年十大突破性技术
- 高性能云计算展望(中)
- 爬过这 6 个坡,你就能对 Linux 操作系统了如指掌
- 【PTA】JAVA提交的一些注意点
- mybatis的缓存技术使用
- UVA1226 LA3997 Numerical surprises【大数】
- C# 委托与事件(delegate)
- [剑指offer] 7. 斐波那契数列 (递归 时间复杂度)
- 决策树随机森林adaboost理论实战
- 面向对象程序设计——基于JML的地铁系统
- 微信清除自带浏览器的缓存
- windows 7 下,如何统计某文件夹下 视频总时长
- RoboMaster无人机设计
- 嵌入式软件工程师 秋招笔试题
- JS 进一法 四舍五入
- 2017年蓝桥杯C组真题及解析
- H3C 防火墙混合实验 新华三杯拆解
- unity中的动态绑定、赋值等
- 【Matlab路径规划】改进的遗传算法机器人避障路径规划【含GUI源码 703期】