文章目录
1.强制类型转换
两种方式:
(类型)变量
类型(变量)
2.运算符
2.1.++和–运算符
前++和前–:在变量使用前先对变量做自增/自减操作;
后++和后–:在变量使用后对变量操做自增/自减作;
实际输出的都是变量的当前值。
#include <iostream>
using namespace std;
int main()
{
int val_1=10;
cout<<"val_1++:"<<val_1++<<endl;
int val_2=20;
cout<<"val_2--:"<<val_2--<<endl;
int val_3=30;
cout<<"++val_3:"<<++val_3<<endl;
int val_4=40;
cout<<"--val_4:"<<--val_4<<endl;
}
2.2.左移和右移运算符
左移:所有二进制位一次向左移,左边位丢失,右边补0;
右移:所有二进制位一次向右移,右边位丢失,左边???
无符号数:左边补0;
有符号数:非负数,左边补0;负数,左边补1;
#include <iostream>
using namespace std;
int main()
{
int var = -1;
cout<<"var右移5位:"<<(var>>5)<<endl;
}
执行结果:
root@Ubuntu18:/home/remotefs/004.c++/day03# g++ main.cpp
root@Ubuntu18:/home/remotefs/004.c++/day03# ./a.out
var右移5位:-1
2.3.条件运算符_?_:_
#include <iostream>
using namespace std;
int main()
{
int a=10;
int b=20;
int c=30;
int d=40;
//如果a<b,++c不会被执行,c保持原始值
//如果a>b,--d不会被执行,d保持原始值
int e = (a>b)?++c:--d;
cout<<"a:"<<a<<endl;
cout<<"b:"<<b<<endl;
cout<<"c:"<<c<<endl;
cout<<"d:"<<d<<endl;
}
执行结果:
root@Ubuntu18:/home/remotefs/004.c++/day03# g++ main.cpp
root@Ubuntu18:/home/remotefs/004.c++/day03# ./a.out
a:10
b:20
c:30
d:39
2.4.运算符优先级
前三:圆括号,成员,单目;
后三:三目,赋值,逗号;
2.5.赋值运算的结果等于左边的变量
#include <iostream>
using namespace std;
int main()
{
int a=0;
cout<<(a=10)<<endl;
}
执行结果:
root@Ubuntu18:/home/remotefs/004.c++/day03# g++ main.cpp
root@Ubuntu18:/home/remotefs/004.c++/day03# ./a.out
10
3.数据类型
3.1.枚举类型
枚举类型的Size为一个整型数据的长度。
#include <iostream>
using namespace std;
//定义新数据类型Color
enum Color{
RED,
GREEN=100,
BLUE
};
int main()
{
Color hat_1=RED;
Color hat_2=GREEN;
Color hat_3=BLUE;
cout<<"size:"<<sizeof(Color)<<endl;
cout<<"hat_1:"<<hat_1<<endl;
cout<<"hat_2:"<<hat_2<<endl;
cout<<"hat_3:"<<hat_3<<endl;
}
执行结果:
root@Ubuntu18:/home/remotefs/004.c++/day03# ./a.out
size:4
hat_1:0
hat_2:100
hat_3:101
4.结果和变量一致的运算
(1)前++
(2)前–
(3)赋值=
(4)复合赋值 例如:+=