运算符、表达式
1、C语言运算符
算术运算符和算术表达式
+(加)、—(减)、*(乘)、/(除)、%(取余,也叫模运算符,该运算符两侧都要求为整数)
// printf("表达式的结果为%d\n",5/3);    两个整数相除,系统会舍弃小数部分。
printf("表达式的结果为%d\n",9%4);       // 7/4 = 1,7%4 = 3      9/4 = 2,9%4 = 1;
优先级问题:先乘除,后加减,如果优先级相同,则按照先算左边,后算右边的方式来处理(从左到右结合);
例如:2+3*5;这个先算乘法再算 加法         2+8-5;   这个从左到右计算
2、赋值运算符
int i;
i = 4+3;   //把等号右边的值赋给等号左边的变量。  ==> i = (4+3);  //括号,如果搞不懂优先级,那么就用()运算符把需要优先计算的内容括起来。
3、强制类型转换运算符:讲一个表达式转换成所需要的类型
强制类型转换得到的是一个所转换到的类型的的中间变量,但是这个类型本身是没有变化而是整个这个结果的类型发生了变化。
int a = 10;
double b;
b = (double) a;         在这里 a 本身类型并没有变化而是这整个结果的类型发生变化。
(int)(x+y)     将x+y 的值转换成整型;
(float) (5%3)   将5%3 的值转换成float型
总结:强制类型转换运算符的一般形式:
(类型名)(表达式)
注意:(int) x+y    这里表示将 x 转换为整型,然后和 y 相加。
两种类型转换:
(1)、自动类型转换:系统替你转换数据类型
(2)、强制类型转换:当自动类型转换无法达到目的的时候,就用 强制类型转换。
(% 取余,也叫模运算符,该运算符两侧都要求为整数)
i = (int) x % 3;
4、自增和自减操作符    ++(自增)  --(自减)
自增和自减操作符只能用于变量,不能用于常量或表达式。比如错误的用法    5++,(a-b)++ ,--5 ,--(a+b) ;
当自增或自减运算符在变量屁股后面时,对于该自增或自减表达式的使用时,先用后加。
int i = 6;
i ++;   // 7, 先用后加
++ i;   // 7,
注意:如果i++ 或者 ++ i 单独写成一个语句,没有任何区别,都是将变量自身 +1,没有区别,但是,如果放在函数调用中,结果就会不同。
例如:A.用在函数中时:
printf("i++的结果是=%d\n",i++);   //这里表示先用后加,i ++的结果是 6;
printf("i++的结果是%d\n",i++);        //先用后加,i++ 的结果是 6;i 本身变成了7。
printf("++i的结果是%d\n",++i);        //先加后用,i++ 的结果是 7;i 本身变成了7。
printf("i--的结果是%d\n",i--);        //先用后减,i-- 的结果是 6;i 本身变成了5。
printf("--i的结果是%d\n",--i);        //先减后用,--i 的结果是 5;i 本身变成了5。
B.单独作为表达式的时候:【表达式:可以理解为用 +-*/ 串起来的一个式子】
--i;      //结果为5
i--;      //结果为5
-i++; ==> -(i++);       //这里看优先级,++ 的优先级比 -更高。
5、赋值运算符和赋值表达式   (=) 将等号右边的值赋给等号左边的变量。
等号的左边,是一个变量,所谓这个赋值,大家理解成:给变量一个值,或者改变变量为哪个值。
int a;
a = 5;
a = 6.5;    //将实型数据赋给整型变量时,小数部分会被设置为  a = 6;
a = 18+50;     //相当于 a = 68;
a = a+5;         // 相当于 a = 73;
float f;
f = 125;      // 1.25E+2,实型变量是按指数形式保存在内存中的。
几个概念:
char a;     // 这个叫变量定义,系统会给a 分配一个字节的内存,内存里面的值不确定
char a = 90;    // 这个叫变量定义,同时给变量赋初值(定义时初始化);而且这个不是赋初值,这个叫:定义时赋初值。
a = 900;     // 赋值语句,这就是赋值,但是这里char类型会造成溢出,溢出后a里面的内容,就变得不可预料,会乱码。
赋值的原则:类型要相同,类型不同的要强制类型转换,当强制类型转换时,开发者必须自己明确是否会溢出。
int a =8;
a += 3;  // 11  a = a+3;
int x = 2;y = 8;
x *= y+8;    // 32 ==> x = x * (y+8);  如果 *= 右侧是个表达式的话,则相当于该表达式有括号。
赋值表达式(复合的赋值表达式)本身也是有值的
int a = 4;
printf("a = 5这个赋值表达式的值是%d\n",a = 5);     // 输出的结果是 5
printf("a += 8这个赋值表达式的值是%d\n",a +=8);    //输出的结果是 13
int a,b,c;
a=(b=5);   //a=5;b=5;
a = b = c=5;   //赋值运算符具有从右到左的结合性
a = (b = (c =5));
int a = 3;
a+=a-=a*a;         // a +=(a -=(a*a));  结果为-12
6、逗号运算符和逗号表达式
逗号运算符  将两个表达式 连接起来;逗号运算符 它的优先级是最低的
格式:表达式1,表达式2
求解过程:先求解表达式1的值,再求解表达式2的值,整个 表达式的值是表达式2的值!
int a;
a = (4,5);   //整个表达式的值是5
a = (3+5,6+8);  //整个表达式的值是14
a = 3+5,a+4;   //整个表达式的值是60  a 的值变成了15
逗号表达式的扩展形式:
表达式1,表达式2,表达式3,表达式3,....表达式N,最终的值是表达式N的值。
int x,a;
x = (a = 3,6*3);   //a = 3;x = 18;
x = a =3,6*a;    // x = 3,a =3;   逗号表达式的结果是18,但是这个结果值并没有用到

C语言 运算符、表达式相关推荐

  1. c语言的运算答案,C语言运算符与表达式的练习题答案.doc

    C语言运算符与表达式的练习题答案.doc C语言运算符与表达式的练习题单项选择题 1以下选项中,正确的 C 语言整型常量是( D ). A. 32L B. 510000 C. -1.00 D. 567 ...

  2. C语言为运算表达式添加括号,读书笔记-c语言-运算符与表达式

    1.算术运算符:+-*/% %要求参与运算的两个量必须是整型或字符型的,实型(float,double等)的数据不能做%运算. 算术表达式 运算符和数据可以组成运算的式子,称为表达式.举例:10+20 ...

  3. c语言表达式运算符,C语言运算符与表达式

    <C语言运算符与表达式>由会员分享,可在线阅读,更多相关<C语言运算符与表达式(18页珍藏版)>请在人人文库网上搜索. 1.2020/6/26,3,1,陈孝则,运算符和表达式, ...

  4. 第三章 C语言运算符,表达式,序列点,类型转换

    文章目录 赋值运算符 对象.左值.右值 算术运算符 关系运算符 逻辑运算符 备选拼写 iso646.h头文件 条件运算符 逗号运算符 表达式 语句 表达式语句 复合语句 迭代语句 选择语句 跳转语句 ...

  5. C语言——运算符与表达式

    知识点一:表达式 1)什么是表达式:在C语言中,一个或多个运算对象与零个或多个运算符组成表达式; 例: 100 5 + 10 a / b a * 10 / b + c 2)表达式的结果: printf ...

  6. 第三章 C语言运算符与表达式练习题

    第三章 运算符与表达式练习题 一.单项选择题 1.下列数据中属于"字符串常量"的是(  ).      A."a"      B.  {ABC}         ...

  7. C语言运算符与表达式

    1.c语言三目运算 三目运算符也叫条件运算符.三元运算符,是由一个问号和一个冒号组成. 语法: 表达式1?表达式2:表达式3;语义: 先执行表达式1,如果表达式1的结果如果为真,那么执行表达式2, 并 ...

  8. c语言等号运算符先计算右边,C语言运算符和表达式.ppt

    <C语言运算符和表达式.ppt>由会员分享,可在线阅读,更多相关<C语言运算符和表达式.ppt(29页珍藏版)>请在人人文库网上搜索. 1.运算符和表达式,夏涛,运算符与表达式 ...

  9. c语言运算符与表达式ppt,c语言运算符与表达式.ppt

    c语言运算符与表达式.ppt 第三讲 运算符与表达式 运算符与表达式 [例] 自增.自减运算符的用法与运算规则示例. /*程序功能:自增.自减运算符的用法与运算规则示例*/ main int x 6, ...

  10. c语言分量运算符举例,c语言(运算符和表达式).ppt

    第4章C世界中的加减乘除 运算符和表达式 C中的运算符和表达式算术运算符和表达式关系运算符和表达式逻辑运算符和表达式条件运算符和表达式赋值运算符和表达式自增 自减运算符逗号运算符和表达式运算符的优先级 ...

最新文章

  1. MySQL——数据库的增删改操作
  2. python webviewer爬虫_爬虫再也不怕检测浏览器环境了
  3. 韩顺平php视频笔记35 php运行过程
  4. js条件判断时隐式类型转换
  5. 谈谈文本匹配和多轮检索
  6. mysql服务重启后不见了_太狗血!翔安已婚男出轨KTV服务员,致其怀孕后避而不见!情人上门讨要说法后原配妻子也......
  7. Dubbo框架协议总结
  8. 浏览器中调用Linux程序,一个可以使用浏览器通过ssh连接linux的程序
  9. 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之64---BREW 应用的交叉编译...
  10. SocketTool
  11. 高等数学-不定积分基本公式
  12. 白话区块链~Pow,PoS,DPos
  13. 将旧硬盘的内容克隆到新硬盘
  14. 《MacTalk 跨越边界》一一1.1 40岁了,还有没有路走?
  15. asp.net新闻采集(wyz)
  16. 流程图制作之Giffy Diagrams
  17. Java:使用Java编写一个随机点名器
  18. 3D Dirichlet Free-Form Deformation(三维Dirichlet自由变形)
  19. spoj p104 Matrix-Tree定理
  20. tensorflow高阶教程:tf.dynamic_rnn

热门文章

  1. 秦嘉哲:11.9黄金原油晚间行情趋势分析及欧美盘最新操作建议
  2. 互联网协议 — TCP/IP 分层体系结构
  3. Swft学习 传送门
  4. 超详细的ERP流程剖析!(建议收藏)
  5. 移动软交换技术在3G核心网中的实现
  6. 李迟2022年6月工作生活总结
  7. Captcha must be filled out,解决Kaggle新用户注册无法弹出验证提示的问题(转 侵删)
  8. inkscape命令行转曲转pdf
  9. 将excel文件转换为MemoryStream 流用于浏览器中下载
  10. 0基础学习arduino(一)