运算符及其运算规则

运算符及其运算规则

补充昨天的字符:

转义字符:

\n :换行,将当前位置移到下一行开头。
\t :水平制表,以8的倍数进行间隔。
\b:退格,将光标从当前位置移到前一列,若\b后面有字符,则其后面字符会替代其前面的字符。
\r :回车,将光标从当前位置移到开头,则其后面字符会替代开头的字符。
\f :换页,将当前位置移到下页开头。
\\ 代表一个反斜杠符号
\‘代表一个单引号
\“” 代表一个双引号
\ddd代表一个1到3位的八进制所代表的字符
\xhh代表一个1到2位十六进制所代表的字符 //如’A’= ‘\101’=\x41’’

算数运算符:

+ - * / %:

优先级:不同优先级的运算混合时,高优先级的先结合。
结合性:同一优先级的运算混合时,按照结合性进行结合。
当不同类型的数进行运算时,往往存在隐式类型转换:
short 、char 默认转换为int类型进行运算,有符号的转换为无符号的进行运算
低精度的转换为高精度的进行运算。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
与之对应的是强制类型转换,其实际上是一种运算符:形式:(数据类型)运算数;需要注意的是,进行强制类型转换并不会影响运算数本身的值。

除法/(乘法同理):

1.如果是两个整数相除,此时相当于整除的效果。
2.除法运算中,除数不能为零。

取余%:

1.除数不能为零
2.求余运算,运算数不能是小数,必须是整数。
3.结果的符号,取决于左操作数的符号(如:int a = 5,b = 2,a%b结果为1,int a =-5,int b =2(int b=-2),a%b结果都为-1)。
运算符和表达式:
1.表达式:运算符和运算数构成的字符序列。
2.表达式都是有值的。
3.表达式都是有类型的。

函数 int rand(void),void srand(unsigned int seed),time_t time(time)

//void :函数返回值类型。
//srand :函数名。
//unsigned int seed:形参。
//srand(5):5----实参。
//seed = 1,rand()产生一系列随机数;seed =2,rand()产生新的一系列随机数。
//time_time(NULL):返回值就是获得的秒数值
//srand(time(NULL)):相当于seed一直在变,rand()每秒钟更新不同的随机数。

i++,++i:(increment operand)自增运算符

int a = 0;
a++://后置加加----先用(表达式的结果)后加
++a://前置加加---- 先加(让i自增)后用(表达式的结果)
a++:a应该是个左值(左值判断:a可以定位,即可以取地址,且a可以改变,是个变量;反之右值则是不可定位,是个常量,(如10++,是个错误写法)
特殊:const int a =10;其中constant是变量的意思,说明a还是个变量,但是是个只能读不能修改的值,此时a++ 也是报错的。
又如:(i++)++也是报错,i++不可以作为左值,不满足可定位(即取地址取不到)。举例:i+++++i;即(i++)++i会报错,涉及C语言中的贪心算法:从左到右逐个扫描,将字符尽可能多的结合成C语言。

赋值运算:

int a;
a = 10;//赋值运算 //赋值表达式 //类型:就是a的类型
int a ,b,c;
a = b = c = 1;//可以连续赋值,它是自右向左赋值的
a +=1;a -= 1;a *=1;a /=1;都是赋值运算

int a; a= 10.20;//高精度给低精度会发生精度丢失;
整型中:int 赋值给short,long 赋值给Int,short赋值给char等会发生高位截断
无符号短类型赋值给长类型:高位补零
有符号短类型赋值给长类型:符号位扩展(即高位补符号位)

拓展:逗号运算:int a =1;int b ;
b=(1+2,a++,3+4);
运算过后,a =2,b =7;
逗号运算规则:从左到右挨个运算,括号中最后一个表达式的运算结果则为b的结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值