C++语法进阶
一、常量
- 概念
- 常量是在程序运行过程中其值保持不变的量,例如固定的字符串如"YES"、数值表达式如"3+2"、具体数字3.、167895832等。
- 定义方式及特点
- 使用#define预处理器(宏定义)
- 语法格式:#define宏名字符串,这里的字符串就是替换文本。例如#define a 2+2,在后续代码中,只要出现a,就会被替换为2+2。
- 特点:
- 没有数据类型的概念,只是单纯的文本替换。比如在#define a 2+2的情况下,计算a2时,会被替换为2+22,结果为6,而不是按照正常数学运算先计算2+2再乘以2得到8,所以使用时要特别注意计算顺序问题。
- 使用const关键字
- 语法格式:const类型说明符常量名 = 常量值,如const int a = 4,将变量a转换为常量,此后a的值不能再改变。
- 特点:
- 常量在定义时必须初始化,因为其值一旦确定就不能再被修改。例如const int a = 2+2,初始化后,a的值就是4,后续使用中a*2的结果为8。如果试图再次给a赋值,如a = 5,会导致报错。
二、三目运算符
- 语法格式:表达式1?表达式2:表达式3。
- 执行流程:
- 首先计算表达式1的值。
- 如果表达式1的值为真(非0),则执行表达式2,并返回表达式2的计算结果。
- 如果表达式1的值为假(0),则执行表达式3,并返回表达式3的计算结果。例如可以用于求两个数中的最大值,假设int a,b,表达式(a>b)?a:b,如果a大于b,就返回a的值,否则返回b的值。
编程实例:
- 使用const关键字定义常量计算圆的面积
#include <iostream>
using namespace std;
int main() {
const double PI = 3.14159;
double radius;
cout << "请输入圆的半径:";
cin >> radius;
double area = PI * radius * radius;
cout << "圆的面积为:" << area << endl;
return 0;
}
- 使用宏定义计算正方形的周长
#include <iostream>
using namespace std;
#define SIDE_LENGTH 5
int main() {
int perimeter = 4 * SIDE_LENGTH;
cout << "正方形的周长为:" << perimeter << endl;
return 0;
}
- 使用三目运算符比较两个数大小并输出结果
#include <iostream>
using namespace std;
int main() {
int num1, num2;
cout << "请输入第一个数:";
cin >> num1;
cout << "请输入第二个数:";
cin >> num2;
int maxNum = (num1 > num2)? num1 : num2;
cout << "较大的数是:" << maxNum << endl;
return 0;
}