一、运算符优先级
百度百科链接:
https://baike.baidu.com/item/C%E8%AF%AD%E8%A8%80%E8%BF%90%E7%AE%97%E7%AC%A6/1539281?fr=aladdin
优先级等级口诀
圆方括号、箭头一句号, 自增自减非反负、针强地址长度,
乘除,加减,再移位,
小等大等、等等不等,
八位与,七位异,六位或,五与,四或,三疑,二赋,一真逗。
其中“,”号为一个等级分段。
C语言运算符以及优先级:
https://www.runoob.com/cprogramming/c-operators.html
二、ASCII码表:
ASCII码表完整版:
https://wenku.baidu.com/view/758a176a1eb91a37f1115ccb.html
三、ASCII转义字符
所有的转义字符和所对应的意义:
转义字符 | 意义 | ASCII码值(十进制) |
\a | 响铃(BEL) | 007 |
\b | 退格(BS) ,将当前位置移到前一列 | 008 |
\f | 换页(FF),将当前位置移到下页开头 | 012 |
\n | 换行(LF) ,将当前位置移到下一行开头 | 010 |
\r | 回车(CR) ,将当前位置移到本行开头 | 013 |
\t | 水平制表(HT) (跳到下一个TAB位置) | 009 |
\v | 垂直制表(VT) | 011 |
\\ | 代表一个反斜线字符''\' | 092 |
\' | 代表一个单引号(撇号)字符 | 039 |
\" | 代表一个双引号字符 | 034 |
\? | 代表一个问号 | 063 |
\0 | 空字符(NUL) | 000 |
\ddd | 1到3位八进制数所代表的任意字符 | 三位八进制 |
\xhh | 十六进制所代表的任意字符 | 十六进制 |
注意:
1. 区分,斜杠:"/" 与 反斜杠:"\" ,此处不可互换
2. \xhh 十六进制转义不限制字符个数 '\x000000000000F' == '\xF'
四、运算符操作及示例代码
1、算数运算符:+ - * / %
(1)、/ :两个实数相除的结果为双精度实数,两个整数相除的结果为整数(一般向0取整)
示例代码:
四舍五入到个位
#include<stdio.h>
int main()
{
float n = 1.525f; //float n = 1.425f;
printf("%d", (int)(n * 10 + 5)/10); //四舍五入到个位 输出为 2
return 0;
}
四舍五入到小数点后两位:
#include<stdio.h>
int main()
{
float n = 1.525f;
printf("%f", (int)(n*100+0.5)/100.0); //四舍五入到小数点后两位
return 0;
}
库函数可以实现四舍五入:
<stdio.h>里面有个 round() 函数 将浮点值舍入为最接近的整数。
#include<stdio.h>
#include<math.h>
int main()
{
float n = 1.525f;
printf("%f", round(n)); //输出为 2.000000
return 0;
}
(2)、求余运算符 只能两个整数求余
利用求余得到整数的各个位数:水仙花数算法
#include<stdio.h>
int main()
{
int i,n,m,l;
for(i=100;i<=999;i++)
{
n=i/100; //百位数
m=i%100/10; //十位数
l=i%10; //个位数
if(i==n*n*n+m*m*m+l*l*l) //判断水仙花数
{
printf("%d\t",i);
}
}
printf("\n");
return 0;
}
2、关系运算符和逻辑运算符
关系运算符和逻辑运算符主要用在分支和循环里面作为条件判断真假!
关系运算符: < > <= >= == !=
逻辑运算符: && || !
3、位运算符(二进制运算符)
按位与&
按位或 |
按位与或 ^
按位取反 ~
左移 <<
右移 >>
异或 ^ :
特点:对于同一个数字异或两次会得到它本身
#include<stdio.h>
int main()
{
if (14 ^ 87 ^ 87 == 14) {
printf("True\n");
}
else {
printf("False\n");
}
return 0;
}
运行结果:
用法:加密用!
z=x^y 对x进行加密
a=z^y 对z进行解密
交换两个变量的值:
//利用临时变量交换
int temp;
temp=x;
x=y;
y=temp;
//利用异或
x=x^y;
y=x^y;
x=x^y;
//用加减法
x=x+y; //对于x和y比较大的时候 x+y可能超过int范围
y=x-y;
x=x-y;
4、条件(三目)运算符
条件 ? 表达式1 : 表达式2
//求两个数的最大值
max=a>b?a:b;
其他运算符:
()运算符
++ 自增 -- 自减
1、前++ :先计算,后自增
2、后++ :先自增,后计算
& 取变量地址
sizeof 计算变量/类型的大小
[] 下标运算符
. 点运算
-> 箭头运算符
*指针运算符
() 函数
{}语句
优先级:
优先级等级口诀
圆方括号、箭头一句号, 自增自减非反负、针强地址长度,
乘除,加减,再移位,
小等大等、等等不等,
八位与,七位异,六位或,五与,四或,三疑,二赋,一真逗。