(C/C++学习笔记) 五. 常变量(只读变量)和宏
五. 常变量(只读变量)和宏
● 常变量
|
常变量 |
|
#include <iostream.h> //预处理文件 int main() { const double pi=3.14; //定义圆周率常量pi, pi是一个"常变量(const variable)" double radius; //定义半径变量radius double area; //定义面积变量area cout<<"Please input radius"<<endl; cin>>radius; //把输入的数值作为cin这个预定义的"输入流对象",并将之作为半径 area=pi*radius*radius; //计算面积 cout<<"area of circle of radius " << radius << " is "<<area<<"\n"; //输出结果 return 0; } //也可以在声明区定义一个"符号常量(symbolic constant)",以取代上面"常变量" #include <iostream.h> //预处理文件 #define PI 3.14 //PI是符号常量, 注意,预编译指令(preprocessing instruction)末尾没有分号,并且"符号常量"名一般大写, 这也被称为"不带参数的宏定义" int main() { double radius; //定义半径变量radius double area; //定义面积变量area cout<<"Please input radius"<<endl; cin>>radius; //把输入的数值作为cin这个预定义的"输入流对象",并将之作为半径 area=PI*radius*radius; //计算面积 cout<<"area of circle of radius " << radius << " is "<<area<<"\n"; //输出结果 return 0; } |
|
C语言更多使用#define来定义常量(符号常量),c++更多使用const来定义常量(常变量)。
注意: 在定义常变量时一定要赋初值。 例如:const float PI; //错误,定义时没有给出初值 常变量不是变量,在程序中间不能更新其值。
|
● 宏
|
宏是在编译期间起作用,还没到运行期间,所以没有内存分配这个说法 ①不带参数的宏定义: #define 宏名 替换文本, 即: #define <macro> <replacement name> 例如: #define PI 3.14 ②带参数的宏定义: #define <宏名>(<参数表>) <宏体> //记住, 在编程学习中遇到的尖括号一般都不用写出来, 也可写成: #define 宏名(参数表) 宏体 例如: #define MEAN(X,Y) (((x)+(y))/2) //括号不能少, 否则有可能出错 |
|
#include <iostream.h> #define SQUARE(X) X*X int main() { int a = SQUARE(2); cout << a << endl; return 0; } |
|
|
(C/C++学习笔记) 五. 常变量(只读变量)和宏的更多相关文章
- ES6学习笔记<五> Module的操作——import、export、as
import export 这两个家伙对应的就是es6自己的 module功能. 我们之前写的Javascript一直都没有模块化的体系,无法将一个庞大的js工程拆分成一个个功能相对独立但相互依赖的小 ...
- Go语言学习笔记五: 条件语句
Go语言学习笔记五: 条件语句 if语句 if 布尔表达式 { /* 在布尔表达式为 true 时执行 */ } 竟然没有括号,和python很像.但是有大括号,与python又不一样. 例子: pa ...
- Flutter学习笔记(3)--Dart变量与基本数据类型
一.变量 在Dart里面,变量的声明使用var.Object或Dynamic关键字,如下所示: var name = ‘张三’: 在Dart语言里一切皆为对象,所以如果没有将变量初始化,那么它的默认值 ...
- go微服务框架kratos学习笔记五(kratos 配置中心 paladin config sdk [断剑重铸之日,骑士归来之时])
目录 go微服务框架kratos学习笔记五(kratos 配置中心 paladin config sdk [断剑重铸之日,骑士归来之时]) 静态配置 flag注入 在线热加载配置 远程配置中心 go微 ...
- C#可扩展编程之MEF学习笔记(五):MEF高级进阶
好久没有写博客了,今天抽空继续写MEF系列的文章.有园友提出这种系列的文章要做个目录,看起来方便,所以就抽空做了一个,放到每篇文章的最后. 前面四篇讲了MEF的基础知识,学完了前四篇,MEF中比较常用 ...
- (转)Qt Model/View 学习笔记 (五)——View 类
Qt Model/View 学习笔记 (五) View 类 概念 在model/view架构中,view从model中获得数据项然后显示给用户.数据显示的方式不必与model提供的表示方式相同,可以与 ...
- java之jvm学习笔记五(实践写自己的类装载器)
java之jvm学习笔记五(实践写自己的类装载器) 课程源码:http://download.csdn.net/detail/yfqnihao/4866501 前面第三和第四节我们一直在强调一句话,类 ...
- Learning ROS for Robotics Programming Second Edition学习笔记(五) indigo computer vision
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...
- Typescript 学习笔记五:类
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
随机推荐
- Java Spring JDBC访问数据库
一.首先采用org.springframework.jdbc.datasource.DriverManagerDataSource类进行实现 1.applicationContext.xml配置如下: ...
- MATLAB程序控制结构
- js插件---bootstrap-datepicker.js是什么
js插件---bootstrap-datepicker.js是什么 一.总结 一句话总结:选择时间的插件 时间选择插件 1.datepicker如何默认选择当前天? 直接给datepicker对应的i ...
- [Spring] 04 Denpendency Injection
DI Dependency Injection 依赖注入:从程序代码中移除依赖关系的一种设计模式. 这样就可以更容易地管理和测试应用程序. DI使我们的程序编码 loosely coupled.松耦合 ...
- 数据结构(C语言版)-第6章 图
6.1 图的定义和基本术语 图:Graph=(V,E) V:顶点(数据元素)的有穷非空集合: E:边的有穷集合. 无向图:每条边都是无方向的 有向图:每条边都是有方向的 完全图:任意两个点都有一条 ...
- 雷林鹏分享:jQuery EasyUI 树形菜单 - 创建基础树形网格
jQuery EasyUI 树形菜单 - 创建基础树形网格 树形网格(TreeGrid)组件从数据网格(DataGrid)继承,但是允许在行之间存在父/子节点关系.许多属性继承至数据网格(DataGr ...
- WCF开发框架形成之旅--个人图片信息的上传保存
WCF开发框架形成之旅--个人图片信息的上传保存 http://www.cnblogs.com/wuhuacong/archive/2011/12/23/2299614.html 一般在业务系统里面, ...
- python2.x编码问题实例
1,编码问题,主要是区分面向人类的字符串,面向计算机的字节序列 在python3中,字符串是str(默认即unicode),字节序列是bytes 在python2中,字符串是unicode,字节序列是 ...
- android -------- ConstraintLayout 约束属性(二)
ConstraintLayout 介绍 (一) ConstraintLayout 最基本的属性控制有以下几个,即 layout_constraintXXX_toYYYOf 格式的属性,即将“View ...
- React文档(五)组件和props
组件可以让你将UI分割成独立的,可复用的模块,然后考虑将每个模块彼此隔离.从概念上理解,组件就像js中的函数.他们接受随意的输入(被称为props)然后返回React元素来描述屏幕上应该出现什么. 函 ...




