• 表达式:表达式是c语言的主体,在c语言中,表达式由操作符和操作数组成。简单的表达式可以只有一个操作数。根据操作符的个数,可以将表达式分为简单表达式和复杂表达式,简单的表达式只含有一个操作符(如:5+5),而复杂的表达式则含有两个或者两个以上的操作符(如5+5+6*4);表达式是本身什么事情也不做,只是返回结果的值,在程序不多结果值做任何处理的情况下,返回的结果值不起任何作用;表达式产生的作用有两种情况:(1)放在赋值语句的右侧;(2)放在函数的参数中。
  • 赋值运算符和赋值表达式:“=”就是赋值运算符,其作用是将一个数据赋值给一个变量。变量的赋初值(int iNumber=12;char cMyChar=‘a’;int iAmount=1+2)。
  • 自动类型转换:低级数据向高级转换,低级数据会变高级,数据不会失真;高级数据向低级数据转换时,数据级别会降低,并且会发生截断(如float fMum=1.02f;int j=i)。
  • 强制类型转换:如float i=1.01f;int j=(int)i;
#include<stdio.h>
int main()
{
char cChar; /*字符型变量*/
short int iShort; /*短整型变量*/
int iInt; /*整形变量*/
float fFloat=70000; /*浮点型变量*/
cChar=(char)fFloat; /*强制赋值转换*/
iShort=(short)fFloat;
iInt=(int)fFloat;
printf(".........");
return 0;
}
  • 算数运算符和表达式:单目运算符(正,负);双目运算符(乘法,除法,取模,加法,减法);优先级分别是(单目运算符,乘法、除法、取模,加法、减法)。
  • 算术表达式:含有算术运算符的表达式。
  • 算术运算符的结合性:当算术运算符的优先级相同的时候,结合方向是自左向右(如a-b+c)。
  • 自增自减运算符:自增运算符“++”和自减运算符“--”。自增运算符和自减运算符对变量的操作分别是增加1和减少1;
int a=1,b=1,c;
c=++a;//c的值为2,a的值为2
c=b++;//c的值为1,b的值为2
//当自增自减运算符在变量的前面时,变量在参加表达式之前就完成了自增或者自减运算;
//当放在后面时,变量在参加表达式之后完成自增或自减;
  • 关系运算符和表达式:关系运算符的作用就是判断两个操作数的大小关系,关系运算符包括:>,>=,<,<=,==,!=。优先级和结合性:关系运算符的结合性是自左向右的。
  • 逻辑运算符和表达式:逻辑运算符根据表达式的真或者假属性返回其真值或者假值;逻辑运算符包括逻辑与(&&),逻辑或(||),单目逻辑非(!);优先级和结合性:自左向右的结合性,优先级从高到低依次为:单目逻辑非运算符“!”,逻辑与运算符“&&”,逻辑或运算符“||”。
  • 位逻辑运算符和表达式:位运算符是C语言中比较有特色的内容。位逻辑运算符可以实现位的设置、清零、取反和取补操作。利用位运算可以实现很多汇编语言才能实现的功能。为逻辑运算符包括:位逻辑与“&”,位逻辑或“|”,位逻辑非“^”,取补”~“;在程序中,位逻辑运算符一般被程序员用作开关标志。较低层次的硬件设备驱动程序,经常需要对输入输出设备进行为操作。
  • 逗号运算符和表达式:在c语言中,可以用逗号将多个表达式分隔开来。其中,用逗号分开的表达式分别计算,并且整个表达式的值就是最后一个表达式的值。逗号表达式称为顺序求值运算符,逗号表达式的一般形式是:表达式1,表达式2,表达式3,...,表达式n;逗号表达式的求解思路是:先求表达式1,再求表达式2,已知求解到表达式n。整个逗号表达式的值是表达式n的值。如:Value=2+1,5+3,4+5;若按照上述说法,Value的值应该为9,但是实际上Value的值为3,因为还涉及到一个运算符的优先级问题,赋值运算符优先级大于逗号运算符。但是Value=(2+1,5+3,4+5);的Value的值就是9了。
  • 复合赋值运算符:符合运算符是C原因中独有的,实际这是一种操作的做些形式,可使得变量的操作描述方式更为简洁;如Value+=3;实际就是Value=Value+3;
  • 运算符的优先级表如下:

最新文章

  1. bzoj3884 上帝与集合的正确用法
  2. bootstrap总结
  3. jQuery ajax同步的替换方法,使用 $.Deferred()对象
  4. Oracle dmp文件导入(还原)到不同的表空间和不同的用户下
  5. JSON和JSONP区别和联系
  6. js如何把字符串转换成json数据的方法
  7. Phonegap在ios7上系统状态栏的问题解决
  8. 4x4矩阵键盘扫描
  9. if语句—交互程序二
  10. Java 小记 — Spring Boot 注解
  11. markdown反射型xss漏洞复现
  12. mysql源码版安装
  13. MongoDB连接
  14. Java容器解析系列(1) 迭代的进化——从Enumeration到Iterator
  15. css 易错点总结
  16. sublime汉化步骤记录
  17. Python实现邮件的批量发送
  18. Restful framework【第七篇】权限组件
  19. swift - 16进制颜色扩展(1.支持# 2.支持不带# , 3支持带0X)
  20. 安卓个性化 Button

热门文章

  1. 为什么Python中称__lt__、__gt__等为“富比较”方法
  2. PyQt(Python+Qt)学习随笔:gridLayout的layoutRowMinimumHeight和layoutColumnMinimumWidth属性
  3. jarvisoj babyphp
  4. 2. Spring早期类型转换,基于PropertyEditor实现
  5. Raft概述
  6. .NET 内存泄漏的争议
  7. Kruskal重构树——[NOI2018] 归程
  8. 题解-CF1139D Steps to One
  9. P4085 [USACO17DEC]Haybale Feast
  10. 七、git学习之——使用GitHub、自定义Git、