C语言基础——基本运算符
来源:互联网 发布:李宁淘宝代理 编辑:程序博客网 时间:2024/05/22 06:43
01运算符概述
单目: 操作数只有一个 -1双目运算符:有两个操作数 1 + 1
三目运算符:有三个操作数
02-算术运算符
算数运算符: + - * (不是 ×) / % (取余、 取模,在C语言中%只使用整数)int result = 20.5 % 3;
%结果的正负性只与前面的操作数的正负性有关,与后面的数无关
混合运算 结合方向:从左到右;优先级:优先级高先结合
03-赋值运算
赋值运算符
= += -= /= *= %=
int main(int argc, const char * argv[]){
int sum = 10;printf("sum = %d\n",sum);
sum += 5;//等价 sum = sum + 5;
printf("sum = %d\n",sum);
printf("%d\n",sum += 5);
//sum += (sum += 5); 千万不要使用
printf("sum = %d\n",sum);
//复合赋值运算符不可以用变量的初始化
int result = 1;
result += 2 + 2 * 3;
printf("result = %d\n",result);
//所有的赋值运算的优先级小于算术运算的优先级
result *= 2 + 5;//首先会计算出右边的算数表达式
printf("result = %d\n",result);
return 0;
}
= 的基本使用
int test(){int a ;
//赋值运算是有返回值
a = 10;
printf("%d\n",a = 10);
//链式赋值
int b,c,d;
b = c = d = a;
printf("%d,%d,%d\n",b,c,d);
return 0;
}
自增自减
对于 a = a + 1 (效率最低)a += 1 (其次)
++a (最高的)
++a
a++ // 等价a = a + 1; a += 1;
--a // 等价 a = a -1;
a--
//++在后,先进行其他运算,然后自身+1
//++在前,先自增,然后参与其他运算
//--在后,先参与其他运算然后自身-1
//--在前,先自减,然后参与其他运算
05sizeof运算符
#include <stdio.h>int main(int argc, const char * argv[]){
//常量:计算这个常量所占用存储空间的字节数,内存中最小单位字节
//sizeof 是运算符,不是函数
int result = sizeof(10);
result = sizeof(10.1);
result = sizeof(10.1f);
result = sizeof('A');
result = sizeof 10;
printf("result = %d\n",result);
//变量:计算变量所占用的存储空间的字节数
double a;
result = sizeof(a);
result = sizeof a;
printf("result = %d\n",result);
//类型:计算这种类型的变量或者常量所占用存储空间,而不是类型本身所占用的存储空间,类型本身是不占用存储空间的
result = sizeof(int);
// result = sizeof int;//错误
printf("result = %d\n",result);
return 0;
}
06逗号表达式
#include <stdio.h>int main(int argc, const char * argv[]){
int a,b,c;//int a; int b; int c; //这个不是逗号表达式
// printf("%d", int a);
//逗号表达式的运算结果是最后一个表达式的值
// int result = (1,2,3,8);
//逗号表达的结合方向是从左到右
int result = (a = 1,a++,++a);
printf("result = %d\n",result);
return 0;
}
07比较运算符
特点: 只有两种返回值要么 1 要么 0> < >= <= == 等于 !=
int main(int argc, const char * argv[]){
int a = 3;
//比较运算符优先级高与赋值运算的
//结合方向:从左到右
//优先级:== != 低于其他几个
int result = a > 5 == 1;
result = a < 6 > 2;
result = a == 10 < 2;
printf("result = %d\n",result);
// [2,5]
result = 5 >= a >= 2;//错误写法
printf("result = %d\n",result);
return 0;
}
08逻辑运算符
逻辑运算符:链接条件运算符 特点:运算结果只能是0或1&& 优先级 高于 || && || 结合方向 从左到右
一般情况下双目运算的结合方向都是从左到右的
单目运算符 结合方向一般都是从右到左
- !
++ --
&& 逻辑与 只有两边的操作数都为真 1,才为真1 口诀: 一假则假
|| 逻辑或 只要有个为真就为真,全假才为假 口诀: 一真则真
! 逻辑非 口诀:真变假,假变真
结合方向:从右到左
int main(int argc, const char * argv[]){
//C语言中 所有数值都有真假性,只有0是假的,其他都是真的
// [2,5]
int a = 7;
//逻辑与
int result = a >= 2 && a <= 5;
//不在(2,6)区间
//逻辑或
result = a <= 2 || a >=6;
result = !!5;printf("result = %d\n",result);
int result1 = 1 && (0 || 1);
printf("result = %d\n",result1);
int a = 10;
&&当前面这个表达是为假的时候,后面的表达式就不参与运算了 (短路&&)
result1 = a++ > 10 && a-- < 5;
printf("result = %d,a = %d\n",result,a);
|| 当前面的表达式为真的时候,后面的表达式就不参与运算了, (短路||)
result1 = a++ >= 10 || a-- < 5;
printf("result1 = %d,a = %d\n",result1,a);
return 0;
}
09三目运算(条件表达式)
格式:条件表达式 ? 结果1 : 结果2 (条件表达式为真,返回结果1,结果为假,返回结果2 )
#pragma mark 条件表达式的基本使用int test(){
int result;
int a = 20;
int b = 10;
result = a > b ? a : b;//取最大值
printf("result = %d\n",result);
return 0;
}
.
总结:
1、当判断操作要有返回值并且逻辑简单使用三目运算符
2、只要是可以使用三目运算符的都可以使用if
3、当逻辑比较简单的时候,使用三目运算符,会简化代码,并且可以提高代码可以读性
运算符:
单目运算符,双目运算符,三目运算符
算术运算符:+ - * / %
赋值运算符: = += -= /= *= %=
自增自减
++a a = a +1,表达式的值为a+1后结果
a++ a = a + 1,表达式的值为原来a的值
--a a = a - 1,表达式的值为a-1后的结果
a-- a = a - 1,表达式的结果为原来a的值
sizeof 计算常量、变量、类型所占用存储空间的字节数
逗号表达式:从左到右进行计算,返回值最后一个表达式的值
比较运算符:== != > < >= <= y 大于赋值运算 小于算术运算
逻辑运算符:&& 一假则假 如果前面的表达式为假,后面的表达式就不参与运算了
|| 一真则真,如果前面的表达式为真,后面的表达式就不参与运算了
! 真变假,假变真
三目运算符:条件表达式 ? 结果1 : 结果2 ,若条件表达式成立则返回结果1 否则返回结果2
- C语言基础——基本运算
- C语言基础—基本运算
- C语言基础—基本运算
- C语言基础——基本运算符
- 黑马程序员——C语言基础(三)基本运算
- 黑马程序员——C语言基础---基本运算
- 黑马程序员—IOS基础(C语言基本运算)
- C语言基础学习运算符-基本算术运算符
- 黑马程序员——C语言基础 03—基本运算符
- 黑马程序员——C语言基础篇---基本运算和位运算
- 黑马程序员---c语言基础--基本运算
- C语言—基本语句和运算
- C基础——基本运算
- 黑马程序员——C语言基本运算符
- 黑马程序员——[C语言]基本运算符
- c语言基础5—算数运算
- 黑马程序员——C语言基础语法--scanf函数、基本运算、流程控制
- 黑马程序员——C语言基础语法、基本运算理论
- 中值滤波
- C++中map容器的说明和使用技巧
- Linux 之 /etc/profile、~/.bash_profile 等几个文件的执行过程
- 8.3递归与分治
- java正则表达式
- C语言基础——基本运算符
- ios几个常用动画
- myeclipse的优化
- USACO Section 2.2 Party Lamps
- Hibernate与iBATIS的比较
- php生成验证码代码
- findjar:一个JAR 文件搜索引擎
- 冒泡排序法的原理与举例
- 在PC上测试移动端网站和模拟手机浏览器的5大方法