目录
一、常量:
1、宏常量:
#define 宏常量: #define 常量名 常量值
-
通常在文件上方定义,表示一个常量。
-
宏常量可以放于数组定义中。
-
宏常量也不可以修改。
-
定义时末尾没有分号
2、const常量:
const修饰的变量 const 数据类型 常量名 = 常量值
-
通常在变量定义前加关键字const,修饰该变量为常量,不可修改,必须在定义时赋予初值
//1、宏常量
#define day 7
#define n 10
int main() {
//1、宏常量
cout << "一周里总共有 " << day << " 天" << endl;
//day = 8; //报错,宏常量不可以修改
//定义数组
int arr[n];
//2、const修饰变量
const int month = 12;
cout << "一年里总共有 " << month << " 个月份" << endl;
//month = 24; //报错,常量是不可以修改的
system("pause");
return 0;
}
二、标识符命名规则:
-
标识符不能是关键字
-
标识符只能由字母、数字、下划线组成
-
第一个字符必须为字母或下划线
-
标识符中字母区分大小写
三、数据类型:
1、整型:
不同类型的整型所占空间不同:
数据类型 | 占用空间 | 取值范围 |
---|---|---|
short(短整型) | 2字节 | (-2^15 ~ 2^15-1) |
int(整型) | 4字节 | (-2^31 ~ 2^31-1) |
long(长整形) | Windows为4字节,Linux为4字节(32位),8字节(64位) | (-2^31 ~ 2^31-1) |
long long(长长整形) | 8字节 | (-2^63 ~ 2^63-1) |
2、 sizeof与typeid关键字:
sizeof作用:利用sizeof关键字可以==统计数据类型所占内存大小==
语法: sizeof( 数据类型 / 变量)
int main() {
cout << "short 类型所占内存空间为: " << sizeof(short) << endl;
return 0;
}
typeid作用:判断数据属于什么类型。
语法:typeid(判断的数据)
int main()
{
//两个小数相除
double d1 = 0.5;
double d2 = 0.25;
if (typeid(d1/d2) == typeid(double))
{
cout << "是浮点类型" << endl;
}
else if (typeid(d1 / d2) == typeid(int)) {
cout << "是整数类型" << endl;
}
cout << d1 / d2 << endl; //double浮点类型
return 0;
}
3、浮点与科学计数法:
浮点型变量用于表示小数分为两种,二者的区别在于表示数字的范围不同
-
单精度float
-
双精度double
数据类型 | 占用空间 | 有效数字范围 |
---|---|---|
float | 4字节 | 7位有效数字(包括整数部分) |
double | 8字节 | 15~16位有效数字(包括整数部分) |
int main() {
float f1 = 3.14f;
double d1 = 3.14;
//科学计数法
float f2 = 3e2; // 3 * 10 ^ 2
float f3 = 3e-2; // 3 * 0.1 ^ 2
system("pause");
return 0;
}
4、字符型:
作用:字符型变量用于显示单个字符
语法:char ch = 'a';
注意1:在显示字符型变量时,用单引号将字符括起来,不要用双引号
注意2:单引号内只能有一个字符,不可以是字符串
-
C和C++中字符型变量只占用1个字节。
-
字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCII编码放入到存储单元
-
A的ASCII是65,a是97,0是48。
int main() {
char ch = 'a';
cout << ch << endl;
cout << sizeof(char) << endl;
//ch = "abcde"; //错误,不可以用双引号
//ch = 'abcde'; //错误,单引号内只能引用一个字符
// 将字符转化为对应的ascll值
cout << (int)ch << endl; //查看字符a对应的ASCII码
ch = 97; //可以直接用ASCII给字符型变量赋值
cout << ch << endl;
// 将int转化为对应的ASCII字符
cout << (char)65 << endl;
// 将数字转化为对应的ASCII值
cout << 65 + '0' << endl;
system("pause");
return 0;
}
5、 转义字符:
作用:用于表示一些不能显示出来的ASCII字符。用 \ 来进行转义:
- 转义字符可以使用 ” “双引号或' '单引号括起来
int main() {
// \
cout << "\\" << endl;
// 在一个tab的距离之后输出Hello
cout << "\tHello" << endl;
//换行相当于打了一个endl
cout << "\n" << endl;
system("pause");
return 0;
}
6、字符串类型:
1、C风格字符串: char 变量名[] = "字符串值"
2、C++风格字符串: string 变量名 = "字符串值" 使用前必须导入
#include<string>头文件
int main() {
//C语言的字符串类型
char str1[] = "hello world";
cout << str1 << endl;
//C++上的字符串类型
string str = "hello world";
cout << str << endl;
system("pause");
return 0;
}
7、布尔类型bool
作用:布尔数据类型代表真或假的值,bool类型只有两个值: 1个字节
-
true --- 真(本质是1)
-
false --- 假(本质是0)
int main() {
bool flag = true;
cout << flag << endl; // 1
flag = false;
cout << flag << endl; // 0
cout << "size of bool = " << sizeof(bool) << endl; //1
system("pause");
return 0;
}
8、数据的输入:
关键字:cin
语法: cin >> 变量
除了字符串类型,其余类型的输入必须赋予初值才能使用cin,否则就会报错。
字符串输入:
- 不能输入空格,输入空格表示输入结束
bool类型输入:
- 输入数字时,只有输入0时才为0,其余数字全是1
- 输入字符串,最终都会返回0
int main(){
//字符串型输入
string str;
cout << "请输入字符串型变量:" << endl;
cin >> str;
cout << str << endl;
//布尔类型输入
bool flag = true;
cout << "请输入布尔型变量:" << endl;
cin >> flag;
cout << flag << endl;
system("pause");
return EXIT_SUCCESS;
}
四、运算符:
我们主要介绍以下运算符:
运算符类型 | 作用 |
---|---|
算术运算符 | 用于处理四则运算 |
赋值运算符 | 用于将表达式的值赋给变量 |
比较运算符 | 用于表达式的比较,并返回一个真值或假值 |
逻辑运算符 | 用于根据表达式的值返回真值或假值 |
1、算数运算符:
作用:用于处理四则运算
运算符 | 术语 | 示例 | 结果 |
---|---|---|---|
+ | 正号 | +3 | 3 |
- | 负号 | -3 | -3 |
+ | 加 | 10 + 5 | 15 |
- | 减 | 10 - 5 | 5 |
* | 乘 | 10 * 5 | 50 |
/ | 除 | 10 / 5 | 2 |
% | 取模(取余) | 10 % 3 | 1 |
++ | 前置递增 | a=2; b=++a; | a=3; b=3; |
++ | 后置递增 | a=2; b=a++; | a=3; b=2; |
-- | 前置递减 | a=2; b=--a; | a=1; b=1; |
-- | 后置递减 | a=2; b=a--; | a=1; b=2; |
1、\是转义符号,/是除
2、无论是前置还是后置运算,a的值都会发生变化。
加减乘除:
int main()
{
int a1 = 10;
int b1 = 3;
cout << a1 + b1 << endl;
cout << a1 - b1 << endl;
cout << a1 * b1 << endl;
cout << a1 / b1 << endl; //两个整数相除结果依然是整数
int a2 = 10;
int b2 = 20;
cout << a2 / b2 << endl;
int a3 = 10;
int b3 = 0;
//cout << a3 / b3 << endl; //报错,除数不可以为0
//两个小数可以相除
double d1 = 0.5;
double d2 = 0.25;
if (typeid(d1/d2) == typeid(double))
{
cout << "是浮点类型" << endl;
}
else if (typeid(d1 / d2) == typeid(int)) {
cout << "是整数类型" << endl;
}
cout << d1 / d2 << endl; //还是浮点类型
system("pause");
return 0;
}
取模:
1、只有整数才能取模运算
2、取模运算同样不支持除数为0
//取模
int main() {
int a1 = 10;
int b1 = 3;
cout << 10 % 3 << endl;
int a2 = 10;
int b2 = 20;
cout << a2 % b2 << endl;
int a3 = 10;
int b3 = 0;
//cout << a3 % b3 << endl; //取模运算时,除数也不能为0
//两个小数不可以取模
double d1 = 3.14;
double d2 = 1.1;
//cout << d1 % d2 << endl;
system("pause");
return 0;
}
2、赋值运算符:
作用:用于将表达式的值赋给变量
运算符 | 术语 | 示例 | 结果 |
---|---|---|---|
= | 赋值 | a=2; b=3; | a=2; b=3; |
+= | 加等于 | a=0; a+=2; | a=2; |
-= | 减等于 | a=5; a-=3; | a=2; |
*= | 乘等于 | a=2; a*=2; | a=4; |
/= | 除等于 | a=4; a/=2; | a=2; |
%= | 模等于 | a=3; a%2; | a=1; |
3、比较运算符
作用:用于表达式的比较,并返回一个真值或假值。
返回值是真或假,即0或1。
运算符 | 术语 | 示例 | 结果 |
---|---|---|---|
== | 相等于 | 4 == 3 | 0 |
!= | 不等于 | 4 != 3 | 1 |
< | 小于 | 4 < 3 | 0 |
> | 大于 | 4 > 3 | 1 |
<= | 小于等于 | 4 <= 3 | 0 |
>= | 大于等于 | 4 >= 1 | 1 |
4 逻辑运算符
作用:用于根据表达式的值返回真值或假值
在C++中除了0是假之外,所有的数都是真即1
运算符 | 术语 | 示例 | 结果 |
---|---|---|---|
! | 非 | !a | 如果a为假,则!a为真; 如果a为真,则!a为假。 |
&& | 与 | a && b | 如果a和b都为真,则结果为真,否则为假。 |
|| | 或 | a || b | 如果a和b有一个为真,则结果为真,二者都为假时,结果为假。 |
//逻辑运算符 --- 非
int main() {
int a = 10;
cout << !a << endl; // 0
cout << !!a << endl; // 1
system("pause");
return 0;
}