高楼大厦平地起
记录笔记第二天
运算总原则
1.整型提升:bool,char,short,unsigned int ,int等运算时,自动提升为int型或unsigned int 型
2.运算结果的类型以参与运算中类型精度高的为标准
浮点>整型>字符>布尔
整数默认为int,小数默认为double
算术运算符
+,-,*,/,%
%(取余):两边必须是整数类型
2.5%3//报错
5%'a'//正确
运算结果符号和被除数符号一致
cout<<5%2<<endl;//1
cout<<5%-2<<endl;//1
cout<<-5%-2<<endl;//-1
cout<<-5%-2<<endl;//-1
自增自减:变量本身+1或-1
(1)前置:先自增或自减再运算
(2)后置:先运算,再自增或自减
效率:前置>后置
优先级:后置>前置
i+++j==(i++)+j;
赋值运算符:左值必须是变量
+=,*=,/=
n=n*(m+2)//等价于n*=m+2
n+=n-=m+=15;//m+=15,n=n-m,n=n+n 结合性从右到左
n=2;
n+=n++;//n=n++ 5
n+=++n;//6
++n+=n++;//7
n+++=++n;//报错,后置不能作为赋值运算左值
int a=1,b;
b=a++;//a=2,b=1
b=++a;//a=2,b=2
随机种子
srand(time(nullptr));//通常用于随机产生数,在头文件#include<stdlib.h>下
22+rand()%9;// [22,30] rand函数在头文件#include<time.h>下
不经过第三方变量,交换两个整型的值
int x,y;
y=x+y;
x=y-x;
y=y-x;