-
=
- 数据对象:泛指数据在内存的存储区域
- 左值:表示可以被更改的数据对象
- 右值:能赋给左值的量
-
+:加
-
int x = 10 + 10; printf("%d\n",x);//20
-
-:减
-
int x = 10 - 10; printf("%d\n",x);//0
-
*:乘
-
int x = 10 * 10; printf("%d\n",x);//100
-
/:除
-
int x = 10 / 10; printf("%d\n",x);//1
-
%:取余数
-
int x = 10 % 3; printf("%d\n",x);//1
-
+=:加等于
-
int x = 10; //输入一个叫x的变量,然后将10赋值给x x += 10; //x=x+10 printf("%d\n",x); //20
-
-=:减等于
-
int x = 10; //输入一个叫x的变量,然后将10赋值给x x -= 10; //x=x-10 printf("%d\n",x); //0
-
*=:乘等于
-
int x = 10; //输入一个叫x的变量,然后将10赋值给x x *= 10; //x=x*10 printf("%d\n", x); //100
-
/=:除等于
-
int x = 10; //输入一个叫x的变量,然后将10赋值给x x /= 10; //x=x/10 printf("%d\n", x); //1
-
%=:取余等于
-
int x = 10; //输入一个叫x的变量,然后将10赋值给x x %= 4; //x=x%10 printf("%d\n", x); //2
-
++:自加1
-
int i = 5; printf("%d\n",i--); //结果是5 i++ :先输出i 再自减1 输出5 5-1=4 printf("%d\n",--i); //结果是3 ++i :先自减1 再输出i 4-1=3 输出3
- ++i是先++(加一),在计算表达式的值
-
--:自减1
-
int i = 5; printf("%d\n",i--); //结果是5 i++ :先输出i 再自减1 输出5 5-1=4 printf("%d\n",--i); //结果是3 ++i :先自减1 再输出i 4-1=3 输出3
-
逗号运算符
int a = 2; int b = 3; int c = 4; int d = 5; int i = (b = d, c + b + a);//先左后右 b=d=5 i=4+5+2=11 printf("%d\n", i); //11 //逗号表达式先求逗号左边的值,然后求右边的值,整个语句的值是逗号右边的值
2.比较运算符
如果是正确:1(真) 如果是错误:0(假)
在c语言中是没有bool值的所以c语言中真用1表示,假用0表示.
1.等于 : ==
printf("%d\n", 10 == 1); // 0
2.不等于: !=
printf("%d\n", 10 != 1); // 1
3.大于: >
printf("%d\n", 10>1); // 1
4.小于: <
printf("%d\n", 10<1); // 0
5.大于等于:>=
printf("%d\n", 10 >= 1); // 1
6.小于等于:<=
printf("%d\n", 10 <= 1); // 0
3.逻辑运算符
1.! 非 不是
int a = 10;
printf("%d\n",!a); //0
2.&& 与 并且 两者都为真
printf("%d\n",0&&1);//0
3.|| 或 或者 两者有一个是真的就是真的
printf("%d\n",0||1);//1
案例:考试成绩小案例
考试:就是大于等于60 就是及格 小于60分就是不及格 一些其他的评判标准
判断 激励制
A优秀 90分以上 500
B良好 75分以上 200
C及格 60分以上 作业本
D不及格 45-60不及格 糖果
E差 45分以下差 竹笋炒肉
int Score;
printf("请输入成绩:\n");
scanf("%d", &Score);
if (Score >= 90){
printf("等级:A(优秀) 奖励:500\n");
}
else if (Score >= 75)
{
printf("等级:B(良好) 奖励:200\n");
}
else if (Score >= 60){
printf("等级:C(及格) 奖励:作业本\n");
}
else if (Score >= 45){
printf("等级:E(不及格) 奖励:糖果\n");
}
else {
printf("等级:E(差) 奖励:竹笋炒肉\n");
}
3.位运算符
1.按位与:& (shift+数字7)
printf("%d\n",9 & 7); //结果是:1
/* 9的原码是 0000 1001
7的原码是 0000 0111
按位与: & 0000 0001
运算方法;有0出0,全1出1
*/
2.按位或:|
printf("%d\n",9 | 7); //结果是:15
/* 9的原码是 0000 1001
7的原码是 0000 0111
按位或:| 0000 1111
运算方法;有1出1,全0出0
*/
3.取反:~
printf("%d\n", ~ 7); //结果是:-8
/* 7的原码是 0000 0111
取反:~ 1111 1000 (负数的补码)
原码=反码+1 1000 0111+1 = 1000 1000 -8
*/
4.按位异或:^
printf("%d\n",9 ^ 7); //结果是:14
/* 9的原码是 0000 1001
7的原码是 0000 0111
按位异或:^ 0000 1110 14
运算方法:一样出0,不一样出1
*/
5.左移:<<
int i = 9;
printf("%d\n",i<<2); //结果是:36
/* 9的原码是 0000 1001
左移:<< 000010 0100 去掉溢出的位数 0010 0100 36
*/
6.右移:>>
int i = 9;
printf("%d\n",i>>2); //结果是:2
/* 9的原码是 0000 1001
右移:>> 0000 001001 去掉溢出的位数 0000 0010 2
*/
4.优先级
三目运算符:?:
//最早的if与else
int Score;//学分
printf("请输入你考试的分数:\n");
scanf("%d", &Score);//从键盘获取一个数据存储Score
//轻量级的逻辑判断就可以用
Score >= 60 ? (printf("YES!!!\n") ):(printf("NO!!!\n"));
//(第一段是判断条件) ? (判断正确:结果1) : (判断错误:结果2)
//if (Score >= 60){
// printf("YES!!!\n");
//}
//else{
// printf("NO!!!\n");
//}
标签:语句,10,0000,int,运算符,Score,原码,printf,表达式
From: https://www.cnblogs.com/sys2410/p/16723515.html