运算符与表达式

知识点一

操作数:参与运算的具体对象。

运算符:指明了对操作数进行的某项运算。

表达式:表示一个求值得规则。它由变量、常量、运算符和函数、括号按一定规则组成。

书写表达式的细节:1,运算符不能相邻;2,括号可以改变运算顺序。

知识点二

运算符的分类:

知识点三

不同的运算符,优先执行就是优先级。

同等的运算符,从左往右执行就是结合性。

知识点三

算术表达式

1,算术运算符:+、-、*、/、%(加减乘除模)

2,算术表达式的结果仍然为数值;

3,c语言区分参与运算对象的数据类型的;

细节:(/)整数相除的结果为整数,实数相除结果为实数;(%)模运算操作数只能是整数

     int x =  / ;
printf("%d\n", x);
//
float y = / ;
printf("%f\n", y);
//2.00000
float z = / 3.0;
printf("%f\n", z);
//2.333333

取模运算

     printf("%d", %);//5=1*3+2 ,所以余数是2
printf("%d", %-);//5=0*-5+3 ,所以余数是3
printf("%d", -%);//5=-1*3-2 ,所以余数是-2
 1  //实现一个整数个位和十位互换  数据分离技术
int num;
scanf("%d", &num);
int ge;
int shi;
ge = num % ;
shi = num / ; printf("输出值:%d", ge * + shi); system("pause");

知识点四

自增自减运算符:将变量的值增加1或减少1。

1,只能对变量使用,不能用于常量和表达式如5++,(a+b)++;

2,前缀时是先运算、后引用,后缀时是先引用、后运算;

    //代码1
short a = , b = ;
short x = , y = ;
short c = (++a)*b;//
short c2 = (x++)*y;//
printf("%d,%d\n",c,c2);
//代码2
short num = ;
printf("%d\n", ++num);//
short num2 = ;
printf("%d\n", num2++);//

知识点五

赋值表达式:将一个数据(常量或表达式)赋给一个变量。

赋值运算符:+=  -=  *=  /=  %= 《=  》=  &=  ^=  |=。

1,结合:从右向左;

2,赋值语句左侧必须是变量,不能是常量或表达式如3=x-2*y; a+b=3;

3,赋值号右边表达式值自动转换成 其左边变量的类型;

4,嵌套;

int  i=2.56; //结果i=2;

a=b=c=5;//a=5,b=5,c=5

a=(b=10)/(c=2);//a=5,b=10,c=2

a+=a-=a*a//等价于a=a+(a=a-(a*a))----嵌套

知识点六

逗号表达式又称顺序表达式,整个表达式的值是最后那个逗号之后表达式的值。

int a = (a = 3, a * 3);//9

知识点七

关系表达式,就是做比较。

关系运算符:>、<、>=、<=、==、!=。

一般形式:表示式1 关系运算符 表达式2。

1,关系表达式运算结果为1(真)、0(假);

2,两边表达式可以是整型、实型、字符型,字符是比较内存地址,不推荐实型进行等与不等比较,因为精度稳定导致结果不可预测。

 //整型
printf("%d\n", > );//
printf("%d\n",<<);//等价于 1<2 结果为1,1<3.最后结果为1

1)字符的比较是比较其ASCII码的大小

2)两个常量字符串,比较的是两个字符串在内存中的地址大小

#define  CMD "calc"
void main(){
//字符型
'a'+>'b' ? printf("成立\n") : printf("不成立\n");//成立 char ch = 'a';
char ch2 = 'a';
printf("%x,%x\n", &ch, &ch2);
ch==ch2 ? printf("相等\n") : printf("不相等\n");//相等
//结论:ch与ch2内存地址不一样,但空间值相等,字符型比较,是比较ASCII大小,所以相等。参见下面图一,图二
}
void main2(){
//字符常量
CMD == "calc" ? printf("相等\n") : printf("不相等\n");//相等,比较内存地址大小
}

字符型比较运算内存分析图一:

字符型比较运算内存分析图二:

知识点八

逻辑运算符:&& 、||、!

逻辑真值表

1,短路原理,表达式1的值足以确定整个表达式的值就不再计算表达式2的值

知识点十

条件表达式又称三目运算符。

一般形式:表达式?条件一:条件二;

c语言笔记3运算符与表达式的更多相关文章

  1. C语言基础知识-运算符与表达式

    C语言基础知识-运算符与表达式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常用运算符分类 1>.算术运算符 用于处理四则运算. 2>.赋值运算符 用于将表达式的 ...

  2. C语言笔记 04_运算符

    运算符 运算符是一种告诉编译器执行特定的数学或逻辑操作的符号.C 语言内置了丰富的运算符,并提供了以下类型的运算符: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 算术运算符 ...

  3. JAVA语言中的运算符和表达式

    JAVA——运算符 按运算符要求的运算符个数可分为一元.二元.三元运算符: 一元运算符有一个操作数:如正数或者负数前面的“+”.“—”,和自增“++”.自减“- -”. 二元运算符有两个操作数:如除法 ...

  4. Java语言常用的运算符和表达式详解

    Java提供了丰富的运算符,如算术运算符.关系运算符.逻辑运算符.位运算符等等.Java的表达式就是用运算符连接起来的符合Java规则的式子.运算符的优先级决定了表达式中运算执行的先后顺序.在编写程序 ...

  5. c语言数据类型、运算符和表达式

    数据类型 1.基本数据类型: 基本数据类型最主要的特点是,其值不可以分解为其他类型.也就是说,基本数据类型是 自我说明的 2.构造数据类型: 构造数据类型是根据已定于的一个或多个数据类型用构造的方法来 ...

  6. 【C语言学习】《C Primer Plus》第5章 运算符、表达式和语句

    学习总结 1.有了一定的语言基础,运算符和表达式这些都大同小异,无外乎赋值运算符(=).算术运算符(+.-.*./.%.++.——)和其他的一下运算符(sizeof.(type)). 2.声明一个参数 ...

  7. JAVA基础——运算符和表达式

    JAVA语言常用的运算符和表达式详解 一.简述 运算符是一种"功能"符号,用以通知 Java 进行相关的运算.譬如,我们需要将变量 age 的值设置为 20 ,这时候就需要一个&q ...

  8. day03运算符、表达式、自增自减、三目运算符、程序结构、用户输入

    复习 1.java的输出语句 1)System.out.println(); 2)System.out.print(); 2.注释 1)单行注释 // 2)多行注释 /* .... */ 3.变量 1 ...

  9. 003-scanf函数使用和表达式-C语言笔记

    003-scanf函数使用和表达式-C语言笔记 学习目标 1.[掌握]输入函数scanf的基本使用方法 2.[掌握]输入函数scanf运行原理和缓冲区理解 3.[掌握]算术运算符和算术表达式的使用 4 ...

随机推荐

  1. 在线视频下载利器——youtube-dl

    youtube-dl是谷歌出品的在线视频下载利器,可以用来下载youtube视频(前提是你得能上youtube). 使用方法很简单,只需要在cmd下执行youtube-de.exe +视频页面网址,程 ...

  2. ORA-64379: Action cannot be performed on the tablespace assigned to FastStart while the feature is enabled

    解决方法: 禁止IM FastStart exec DBMS_INMEMORY_ADMIN.FASTSTART_DISABLE();

  3. ORA-12801/ORA-12853: insufficient memory for PX buffers: current 274880K, max needed 19722240K/ORA-04031解决方法

    近日,现场一台服务器在运行时出现下列异常: ORA-12801: error signaled in parallel query server P139 ORA-12853: insufficien ...

  4. linux --- 9. docker 容器 和 rabbitmq 队列

    一. docker 容器 1.docker是什么? .linux下容器技术有很多,docker是做的最杰出的一款 .docker能够支撑阿里双十一,京东618的业务,说明,性能,安全性不得差 .doc ...

  5. Machine Learning--week2 多元线性回归、梯度下降改进、特征缩放、均值归一化、多项式回归、正规方程与设计矩阵

    对于multiple features 的问题(设有n个feature),hypothesis 应该改写成 \[ \mathit{h} _{\theta}(x) = \theta_{0} + \the ...

  6. 【团队】EasyKing的实现_2

    下载开发版 完成情况 完成了碰撞箱的制作 TODO 子弹攻击范围 音效 英雄技能 建筑 双人联机 物品 小兵 地图移动

  7. 使用SpotBugs/FindBugs进行代码检查

    原po:https://blog.csdn.net/zhangb00/article/details/8407070 SpotBugs 介绍 SpotBugs是Findbugs的继任者(Findbug ...

  8. datatables弹窗报错信息屏蔽方法

    在使用datatables的时候,总是会弹出这样的warning: Error: DataTables warning: table id=data_table- Requested unknown ...

  9. 用GraphX分析伴生网络(二)

    8. 过滤噪声边 在当前的伴生关系中,边的权重是基于一对概念同时出现在一篇论文中的频率来计算的.这种简单的权重机制的问题在于:它并没有对一对概念同时出现的原因加以区分,有时一对概念同时出现是由于它们具 ...

  10. jq初入行常用动画

    --jq动画分类--(1)jQuery的动画其实就是将之前提到过的各种特效进行封装,并对其性能进行优化.(2)jQuery动画分为三个部分:非自定义动画,自定义动画,和全局动画设置. 一.非自定义动画 ...