(C/C++学习笔记) 五. 常变量(只读变量)和宏

时间:2023-11-24 15:25:08

五. 常变量(只读变量)和宏

● 常变量

常变量

#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/C++学习笔记) 五. 常变量(只读变量)和宏

(C/C++学习笔记) 五. 常变量(只读变量)和宏

C语言更多使用#define来定义常量(符号常量),c++更多使用const来定义常量(常变量)。

  • 对于const的作用, "限定只读"相比"定义常数"是更专业的说法.

注意:

在定义常变量时一定要赋初值。

例如:const float PI; //错误,定义时没有给出初值

常变量不是变量,在程序中间不能更新其值。

  • 例如:PI= 3.14159; //错误!常量不能被改变

● 宏

宏是在编译期间起作用,还没到运行期间,所以没有内存分配这个说法

①不带参数的宏定义:

#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++学习笔记) 五. 常变量(只读变量)和宏

(C/C++学习笔记) 五. 常变量(只读变量)和宏

(C/C++学习笔记) 五. 常变量(只读变量)和宏