2. 数据类型
C++规定在创建一个变量或常量时,必须要指出相应的数据类型,否则无法给变量分配内存
2.1 整型
作用:整型变量表示的是整型类型的数据
C++中能够表示整形的类型有以下几种方式,区别在于所占内存空间不同:
数据类型 | 占用空间 | 取值范围 |
short(短整型) | 2字节 | (-2^15 ~ 2^15-1) |
int(整型) | 4字节 | (-2^31 ~ 2^31-1) |
long(长整型) | Window为4字节,LInux为4字节(32位),8字节(64位) | (-2^31 ~ 2^31-1) |
long long(长长整型) | 8字节 | (-2^63 ~ 2^63-1) |
2.2 sizeof关键字
作用:利用sizeof关键字可以统计数据类型所占空间大小
语法:sizeof( 数据类型/变量)
#include <iostream>
using namespace std;
//常量的定义方式
//1. #define 宏常量
//2. const修饰的变量
//1. #define 宏常量
#define Day 7
int main()
{
short a = 10;
int b = 10;
long c = 10;
long long d = 10;
cout << "short类型所占内存空间为" << sizeof(short) << endl;
cout << "int类型所占内存空间为" << sizeof(int) << endl;
cout << "long类型所占内存空间为" << sizeof(long) << endl;
cout << "long long类型所占内存空间为" << sizeof(long long) << endl;
cout << "short类型所占内存空间为" << sizeof(a) << endl;
cout << "int类型所占内存空间为" << sizeof(b) << endl;
cout << "long类型所占内存空间为" << sizeof(c) << endl;
cout << "long long类型所占内存空间为" << sizeof(d) << endl;
system("pause");
return 0;
}
2.3 实型(浮点型)
作用:用于表示小数
浮点型变量分为两种:
1. 单精度float
2. 双精度double
两者的区别在于表示的有效数字范围不同。
数据类型 | 占用空间 | 有效数字范围 |
float | 4字节 | 7位有效数字 |
double | 8字节 | 15-16位有效数字 |
默认情况下,编译器会把小数当成double双精度,所以定义单精度时要在小鼠后面加上f。
示例:
double a=3.14;
float b=3.14f;
不管是float还是double,打印出来最多显示6位有效数字
科学计数法
float f2 = 3e2; //3 * 10^2;
float f2 = 3e-2; //3 * 0.1^2;
2.4 字符型
作用:表示单个字符
语法: char ch = 'a' ;
注意1:在使用字符型变量时,用单引号将字符括起来,不要用双引号
注意2:单引号内只能有一个字符,不可以是字符串
- C和C++中字符型变量只占用1个字符
- 字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCII编码放入到存储单元
2.5 转义字符
作用:用于表示一些不能显示出来的ASCII字符
现阶段我们常用的转义字符有:\n \\ \t
注意:转义字符可以理解为字符串,存在于双引号里面
转义字符 | 含义 | ASCII码值(十进制) |
\a | 报警 | 007 |
\b | 退格(BS),将当前位置移到前一列 | 008 |
\f | 换页(FF),将当前位置移到下页开头 | 012 |
\n | 换行(LF),将当前位置移到下一行开头 | 010 |
\r | 回车(CR),将当前位置移到本行开头 | 013 |
\t | 水平制表(HT) (跳到下一个TAB位置) | 009 |
\v | 垂直制表(VT) | 011 |
\\ | 代表一个反斜线字符”\“ | 092 |
\' | 代表一个单引号字符 | 039 |
\" | 代表一个双引号字符 | 034 |
\? | 代表一个问号 | 063 |
示例:
int main()
{
cout << "换行C++的表示" << endl;
cout << "换行C语言的表示加转义字符\n";
//以上两种方法效果一致,均为换行
cout<<"\n";
cout<<"\a";
system("pause");
return 0;
}
2.6字符串型
作用:用于表示一串字符
两种风格
1. C语言字符串:char 变量名[] = " 字符串值 ";
示例: char str1[]="hello world";
2.C++风格字符串:string 变量名 = " 字符串值 " ;
示例: string str2 = " hello world " ;
2.7 布尔类型 bool
作用:布尔数据类型代表真或假的值
bool类型只有两个值:
- true——真(本质是1)
- false——假(本质是0)
bool类型占1个字节大小
示例:
bool flag = true;
cout<<flag<<endl; //输出显示为1
flag = false;
cout<<flag<<endl; //输出显示为0
2.8 数据的输入
作用:用于从键盘获取数据
关键字:cin
语法: cin>>变量
示例:cin>>a;
注意:bool类型在输入时,应该输入数字,而不是true或者false,除了0,其他数字都是真,比如输入的数字是100,那么cout打印出来的值是1
3. 运算符
作用:用于执行代码的运算
本章我们主要讲解以下几类运算符:
运算符类型 | 作用 |
算术运算符 | 用于处理四则运算 |
赋值运算符 | 用于将表达式的值赋值给变量 |
比较运算符 | 用于表达式的比较,并返回一个真值或假值 |
逻辑运算符 | 用于根据表达式的值返回真值或假值 |
3.1算数运算符
作用:用于处理四则运算
算术运算符包括以下符号:
(+ - + - * \ % ++ -- --)
(正 负 加 减 乘 除 取模(取余) 前置递增 后置递增 前置递减 后置递减)
3.2 赋值运算符
作用:用于将表达式的值赋值给变量
(= += -= *= /= %=)
3.3 比较运算符
(== != < > <= >=)
3.4 逻辑运算符
(! && ||)
4. 程序流程结构
C/C++支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构
顺序结构:程序按顺序执行,不发生跳转
选择结构:依据条件是否满足,有选择的执行相应的功能
循环结构:依据条件是否满足,循环多次执行某段代码
4.1 选择结构
4.1.1 if语句
作用:执行满足条件的语句
if语句的三种形式
(1)单句
if ( score > 60 )
{
cout<<"成绩合格"<<endl;
}
(2)多句
if(score>60)
{
count<<"考试通过"<<endl;
}else{
count<<"考试需补考"<<endl;
}
(3)多条件if语句
if (score > 90){
cout << "优"<<endl;
}else if (score > 80){
cout << "良"<<endl;
}else if (score > 60){
cout << "及格"<<endl;
}else{
cout << "不及格"<<endl;
}
(4) 嵌套if
if (score>60){
if(score>90){
cout<<"优"<<endl;
}else if(score>80){
cout<<"良"<<endl;
}else{
cout<<"及格"<<endl;
}
}else{
cout<<"不合格"<<endl
}
4.1.2 三目运算符
作用:通过三目运算符实现简单的判断
语法:表达式1?表达式2:表达式3
解释:
如果表达式1的值为真,执行表达式2,并返回表达式2的结果
如果表达式1的值为假,执行表达式3,并返回表达式3的结果
示例:
int a = 10;
int b = 20;
int c = 0;
c = a > b ? a : b;
4.1.3 switch语句
作用:执行多条件分支语句
语法:
switch ( 表达式 )
{
case 结果1:执行语句; break;
case 结果2:执行语句; break;
.........
default:执行语句; break;
}
示例:
switch (score)
{
case 10:
cout<<"您认为是经典电影"<<endl;break;
case 9:
cout<<"您认为是经典电影"<<endl;break;
case 8:
cout<<"您认为电影非常好"<<endl;break;
case 7:
cout<<"您认为电影非常好"<<endl;break;
case 6:
cout<<"您认为电影一般"<<endl;break;
case 5:
cout<<"您认为电影一般"<<endl;break;
default:
cout<<"您认为这是烂片"<<endl;break;
}
注意:一定要加break,不然会继续向下执行
4.2 循环结构
4.2.1 while循环结构
作用:满足循环条件,执行循环语句
语法:while (循环条件) {循环语句}
解释:只要循环条件的结果为真,就执行循环语句
示例:
int num=0;
while (num<10){
system("pause");
num++;
}
4.2.2 do...while循环语句
作用:满足循环条件,执行循环语句
语法:do{ 循环语句 } while( 循环条件 )
注意:与while的区别在于do....while会执行一次循环语句,再判断条件。且括号后面要加分号
示例:
//在屏幕中输出0到9这10个数字
int num=0;
do{
cout<<num<<endl;
num++;
} while ( num<10 ) ;
4.2.3 for循环语句
作用:满足循环条件,执行循环语句
语法:for(起始表达式;条件表达式;末尾循环体) { 循环语句; }
示例:
for ( int i=0;i<10;i++ ){
cout<<i<<endl;
}
4.2.4 嵌套循环
作用:在循环中再嵌套一层循环,解决一些问题
示例:
//打印10行10列*
for (int i=0;i<10;i++)
{
for(int i=0;i<10;i++)
{
cout<<"*";
}
cout<<endl;
}
4.3跳转语句
4.3.1 break语句
作用:用于跳出选择结构或循环结构
break使用的时机:
- 出现在switch条件语句中,作用是终止case并跳出switch
- 出现在循环语句中,作用是跳出当前的循环语句
- 出现在嵌套循环中,跳出最近的内层嵌套语句
4.3.2 continue语句
作用:在循环语句中,跳过本次循环中余下的尚未执行的语句,继续执行下一次循环
4.3.3 goto语句
作用:可以无条件跳转语句
语法: goto 标记;
解释:如果标记的名称存在,执行到goto语句时,会跳转到标记的位置
示例:
#include <iostream>
using namespace std;
//常量的定义方式
//1. #define 宏常量
//2. const修饰的变量
//1. #define 宏常量
#define Day 7
int main()
{
cout<<"1" << endl;
goto FLAG;
cout << "2" << endl;
cout << "3" << endl;
cout << "4" << endl;
FLAG:
cout << "5" << endl;
system("pause");
return 0;
}