每天学一会,防痴呆~
文章目录
1. 基本概念
- 变量
语法:数据类型 变量名 = 变量初始值
例如:int a = 1;
- 常量
宏常量:
#define Month 12
const修饰变量:const int Month=12
- 关键字
关键字是C++中预先保留的单词
- 标识符
2. 数据类型
数据类型存在的意义是为变量分配合适的内存空间
2.1 整型
2.2 sizeof关键字
作用:统计数据类型所占内存大小
语法:sizeof(数据类型 / 变量)
2.3 浮点型(实型)
- 小数默认为double类型,创建float类型变量时通常在末尾添加‘f’,例如:
float pi = 3.14f
- 默认情况下,输出一个小数,会显示6位有效数字
- 科学计数法:
float f1 = 3e-2
2.4 字符型
字符型变量用于显示单个字符:char ch = 'a'
注意:
- 不能用双引号:
char ch = "a" 错误
- 单引号内只能引用一个字符:
char ch = 'abcd' 错误
- 字符型变量将对应的ASCII编码放入到内存中:
cout << (int)ch << endl;
输出为:97,小写字母a的ASCII编码是97
2.5 转义字符
2.6 字符串型
- C风格字符串:
char str[] = "hello world";
- C++风格字符串:
#include <string>
string char = "hello world";
2.7 布尔类型
布尔类型只有两个值:true
和false
,占用1个字节
3. 运算符
3.1 算术运算符
- 递增运算符:
++
前置递增:变量先+1,再执行表达式
后置递增:先执行表达式,变量再+1- 递减运算符:
--
// 1. 前置递增:变量先+1,再执行表达式
int a = 10;
int b = ++a * 10;
// a = 11, b = 110
// 2. 后置递增:先执行表达式,然后变量+1
int c = 10;
int d = c++ * 10;
// c = 11, d = 100
3.2 逻辑运算符
4. 程序流程结构
4.1 选择结构
4.1.1 if语句
if (score > 600)
{
cout << "A" << endl;
}
else if (score > 500 & score < 600)
{
cout << "B" << endl;
}
else
{
cout << "C" << endl;
}
4.1.2 三目运算符
语法:表达式1 ?
表达式2 :
表达式3
解释:如果表达式1为真,返回表达式2的执行结果;如果表达式1为假,返回表达式3的执行结果。
C++中三目运算符返回的是变量,可以继续赋值
int a = 10;
int b = 20;
(a > b ? a : b) = 30;
cout << b << endl;
输出b=30
4.1.3 switch语句
int score = 100;
switch (score)
{
int score = 100;
switch (score)
{
case 100:
cout << "A" << endl;
break; // 跳出
case 80:
cout << "B" << endl;
break;
default: // 所有case均不成立时选择default
cout << "C" << endl;
break;
}
}
4.2 循环结构
4.2.1 while语句
// 猜数字小游戏
// 添加随机数种子,根据当前系统时间生成随机数
srand((unsigned int)time(NULL));
// 系统生成随机数
int ans = rand() % 100 + 1;
int val = 0;
int chance = 5;
while (chance)
{
cout << "请输入您猜的数字: " << endl;
cin >> val;
if (val > ans)
{
cout << "猜测过大,您还有" << --chance << "次机会" << endl;
}
else if (val < ans)
{
cout << "猜测过小,您还有" << --chance << "次机会" << endl;
}
else
{
cout << "恭喜您猜对了" << endl;
break;
}
}
4.2.2 do…while语句
语法:do {循环语句} while (条件语句)
注意:与while语句的区别在于do…while语句会先执行一次循环语句,再判断循环条件
/*
题目:寻找水仙花数(水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身)
步骤:
1. 遍历所有三位数,即100~999
2. 获取每个三位数的百位、十位和个位
3. 判断是否为水仙花数
*/
int num = 100;
do {
int a = 0; //数字个位
int b = 0; //数字十位
int c = 0; //数字百位
a = num % 10;
b = num / 10 % 10;
c = num / 100;
if (a * a * a + b * b * b + c * c * c == num)
{
cout << num << endl;
}
num++;
} while (num < 1000);