黑马程序员——C语言——运算符
来源:互联网 发布:扫描线填充算法 编辑:程序博客网 时间:2024/06/07 23:53
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
1. 运算符的分类
按功能分:
算术运算符
关系运算符
逻辑运算符
按位运算符:二进制数的计算
按参与运算操作数的个数:
一目运算符 eg: ++, !, sizeof
二目运算符 eg:+,-
三目运算符 eg: ? :
2 运算符的优先级
运算符的优先级分15等级,1级最高,15级最低。
优先级高的的先于低的运算,优先级相同的时候,考虑运算符的结合性运算
3. 算术运算符
+(正号运算符) - (负号运算符) +,-,*,/ , %
注意:除号(/)运算符,参与运算的操作数均为整数时,运算结果也是整数,舍去小数;如果有一个数是实型,结果是双精度实型
示例代码:
int a=10, b=3, result1=0; float f=3.0f, result2=0.0f; result1=a/b; //result1=3 result1=a/f; //result1=3,因为result1是int类型,只能存放整数 result2=a/f; //result2=3.333333
求余运算符使用注意事项:;
%运算符要求操作数都是整数
可以用对2取余判断一个数的奇偶性
m%n:
m和n都不能是小数
m=0,值是0
n=0,没有意义
m<n,值是m
m>n,正常取余
m<0,结果是负数
n<0,正负性取决于m
4. 数据类型转换
隐式数据类型转换(自动数据类型转换)
float f1=18.4f; int num=12; int sum=f1+num; printf("%d\n",sum); //打印结果是30 float f2=f1+num;printf("%f\n",f2);//打印结果是30.400000,最后一个小数位的0是无效数字printf("%d\n",(int)(f1+num)); //强制类型转换,把float转换为int类型
作用:把等号右侧的值赋值给左侧的变量
变量=值(或表达式);
注意:等号左侧一定是变量。
给变量连续赋值时要先定义,再逐个赋值:
eg: int a1,b1,c1; a1=b1=c1=10;
不能 int a2=b2=c2=20;
符合赋值运算符——先运算,再赋值
+=,-=,*=,/=,%=
6. 自增自减运算符
++,-- 单目运算符,右结合性
前缀表达式:++x, --x 先自增自减,再使用x值做表达式的值
后缀表达式:x++,x -- 先使用x值做表达式的值,再自增自减
代码示例:
int a=3,b=3, result1=0,result2=0; result1=a++; //result1=3 result2=++b; //result2=4 printf("result1=%d,result2=%d",result1,result2);
注意:
无论使用a++,还是++a,最终执行完后,a的值都会+1
自增和自减只能用于单个变量,不能用于常量或表达式
7. sizeof运算符——计算变量、常量、数据类型正在内存中占用的字节数
以字节形式给出操作数存储的大小
//sizeof计算常量在内存中的字节数 int a=sizeof(1); //4 int b=sizeof(2.3f); //4 int c=sizeof(2.3); //8 int d=sizeof('a'); //4 printf("%d,%d,%d,%d\n",a,b,c,d); //sizeof计算变量在内存中的字节数 int num=10; float f1=2.3f; double d1=2.3; char ch='a'; int result1=sizeof(num); //4 int result2=sizeof(f1); //4 int result3=sizeof(d1); //8 int result4=sizeof(ch); //1 printf("%d,%d,%d,%d\n",result1,result2,result3,result4); //sizeof计算某种数据类型在内存中的字节数 int e=sizeof(int); //4 int f=sizeof(float); //4 int g=sizeof(double); //8 int h=sizeof(char); //1 printf("%d,%d,%d,%d\n",e,f,g,h);
注意:
char类型常量以ASCII存储,占4个字节,char类型变量把字符的ASCII转换成二进制存储,占一个字节
sizeof用在常量和变量的时候可以省略括号,用在数据类型的时候不可以
8. 逗号运算符
','运算符,把两个表达式链接起来组成一个表达式,称为逗号表达式
一般形式 表达式1,表达式2
逗号表达式求值,对逗号连接的每个表达式逐个求值,用最后一个表达式的值的值作为整个逗号表达式的值。
eg: int a =1, b=2, c=3; a=(a+b,c+2); 把c+2的值作为整个逗号表达式的值赋值给a
逗号表达式使用注意:
a. 可以嵌套使用
b. 可以简化代码 eg:a++; b++; ——> a++, b++;
c. 并不是所有出现逗号的地方都能组成逗号表达式,比如定义多个变量的时候
9. 关系运算符(左结合)
>, < , == ,!= , >= , <=
关系表达式:用关系运算符连接的式子
关系表达式的值:真(1) 假(0)
关系运算符的优先级: (>, < , >= , <=) > (== ,!= )
10. 逻辑运算符(左结合)
&& || !
逻辑表达式的值:真(1) 假(0)
短路或:第一个条件表达式的值为真,后面表达式就不进行判断了
eg: int x,y,z,result=-1; x=y=z=0;
result=++x||++y||&&z++; 第一个表达式++x的值是1,为真,后面表达式就不参与运算
短路或:第一个条件表达式的值为假,后面表达式就不参与运算
11. 三目运算符(右结合)
?: ——条件运算符
格式:表达式1?表达式2:表示3
如果表示式1的值为真,表达式2的值作为整个表达式的值
如果表示式1的值为假,表达式3的值作为整个表达式的值
- 黑马程序员——C语言——运算符
- 黑马程序员——C语言——运算符
- 黑马程序员———C语言的运算符
- 黑马程序员———C语言 运算符
- 黑马程序员——C语言基本运算符
- 黑马程序员——[C语言]基本运算符
- 黑马程序员—C语言—运算符小结
- 黑马程序员——C语言中的运算符
- 黑马程序员——C语言基础---运算符
- 黑马程序员——C语言——基础运算
- 黑马程序员————C语言基本运算
- 黑马程序员——C语言——基本运算
- 黑马程序员——C语言之关系运算
- 黑马程序员——C语言中的基本运算
- 黑马程序员——c语言学习---运算
- 黑马程序员——C语言---七种运算
- 黑马程序员——C语言基础(三)基本运算
- 黑马程序员——C语言的基本运算
- HDU-2157 How many ways?
- lesson3 一阶线性常微分方程解法
- iOS开发-工具:CocoaPods使用详细说明
- The ISO 9660 File System
- git使用(上)
- 黑马程序员——C语言——运算符
- jQuery中this与$(this)的区别
- Android各种功能分析之一《版本更新检查》
- windows下sklearn的安装
- java代码执行流程
- iOS开发-进阶:NSUserDefaults 简介,使用 NSUserDefaults 存储自定义对象
- CentOS 操作指令-1
- iOS开发-工具:用CornerStone配置SVN,HTTP及svn简单使用说明
- python 利用time模块获取当前 日期时间