c语言中乘法和除法哪个优先,C语言运算符和优先级

关于C语言运算符和优先级,经整理众多博客资料汇入自己的实战,如下:

a.算术运算

C语言一共有34种运算符,包括常见的加减乘除运算。

1) 加法:+ 还可以表示正号

2) 减法:- 还可以表示负号

3) 乘法:* 非数学意义上的X

4) 除法:/  注意1/2的值为0而非0.5

5) 取余(模运算):两个整数相除之后的余数(注意两边都必须是整数,带符号只和左值有关)

注意点:

1) Int a=10.8;//数据精度丢失警告。结果为10——自动类型转换

2) Int a=(int)10.8;//无警告。把10.8强制转换为整型——强制类型转换

3) Double c=10.6+6//结果为16.600000。在计算机中,拿两个数值进行运算,则运算符两边的数值需要类型相同,如果不同则进行自动类型提升。即把6转为6.000000后再参与运算。

4) 参与运算的两个数是什么类型,那么其结果就是什么类型。

int a=10/3结果为3,

double b=10/3结果为3.000000;

double c=10.0/3结果为3.333333。

要求精确值可以进行强制类型转换。

double d=(double)3/2;//把3转换为double类型变为3.000000,之后2进行自动类型提升转变为2.000000参与运算,结果为1.500000。

//也可以写成3/(double)2。区别double e=(double)(3/2)先计算3/2的值为1再对1进行强制类型转换,结果为1.000000。

b.赋值运算

1)简单赋值

Int a=10+5;a=b=10;//从右向左,左边不能为常量

2)复合赋值

a=a+5;=>a+=5;

a=a*5;=>a*=5;

a+=5*6+4;=>a=a+(5*6+4)

提示:预算顺序取决于两点:一是运算符的优先级,二是结合的顺序。

c.自增自减运算

Int a=10;

把a的值加1有四种方法:

1) a=a+1;

2) a+=1;

3) a++;

4) ++a;

简单区分a++和++a。

Int b;

Int a=10;

b=++a; //a==11,b==11;a先把值加1为11,再赋值给b

b=a++; //a==11,b==10;a先把值10复制给b,a自己再加1为11

b=(a++)+(++a);  //a1==10,a2==12,b==22

b=(++a)+(a++);  //a1==11,a2==11,b==22

注意:int d=10++;//这种写法是错误的,因为对常量进行自加和自减没有任何意义。

d.Sizeof

作用:用来计算变量,常量或者是一种数据类型所占的内存字节数。

基本形式:sizeof(变量名|常量|数据类型),完成之后返回一个值。

1) sizeof 变量|常量

2) sizeof (变量|常量)

3) sizeof (数据类型)

注意:数据类型一定要用括号括起来,不能写成sizeof 数据类型这样的形式。

e.关系运算符

1)条件判断

默认情况下。在程序中写出的每一句正确的代码都会被执行,但很多时候我们需要在某个条件成立的情形下才执行某一段代码,

如登录操作,这种情况可以使用条件语句来完成。

2)真假

在C语言中,条件成立称为“真”,条件不成立称为“假”。

C语言规定,任何数值都有真假性,任何非零值都为真,只有0才为假,无布尔类型。

3)关系比较

关系运算的结果只有两种情况,如果条件成立就为真,值为1,如果条件不成立就为假,值为0。

有6种运算符,分别是:(1)  (4) >=  (5)==  (6)!=

4)使用注意

a) ==和!=优先级相等,其他四个关系运算符的优先级相等,且前者的优先级低于后者。如2==3>1 应该先计算3>1

b) 关系运算符中,若优先级相同,则“从左往右”结合。如4>3<2,先计算4>3

c) 关系运算符中的优先级小于算术运算符。如3+4>8-2 相当于(3+4)> (8-2)

d) 练习5!=4+2*7>3==10 先计算5!=18>3==10,5!=1==10,1==10,假

f.逻辑运算符

逻辑运算的结果只有两个:真(0)和假(1)

1) 与   &&   条件1&&条件2 只有的那个条件1和条件2都成立时,才为真否则为假。

2) 或   ||    条件1 ||条件2  当条件1或条件2中有一个成立时就为真,都不成立时为假。

3) 非   !  !条件   取反

注意:逻辑运算符在进行运算时,只要能够确定整体的真假性,后面的条件就不再进行而是直接忽略。

Int a=b=10;

Int c=(a>5)&&(++b>=11);//此时a==10,b==11,c==1

Int c=(a<5)&&(++b>=11);//此时a==10,b==10,c==0

提示:在进行逻辑运算时,如果搞不清楚各个符号的优先级,可以使用()。

g.三目运算符

双目:需要两个值参与运算

单目:1个数值参与运算  如!5

三目:需要3个数值参与

格式:条件?数值1:数值2

先判断?前的条件,若条件成立则返回数值1,若条件不成立则返回条件2。

要求比较a和b的值,把数值大的存入到c中  c=a>b?a:b

比较a,b,c三个数的值,把最大的值存入到d中

Int  abmax=(a>b)?a:b;

d=abmax > c ? abmax : c;

十五个优先级:

1)   ()  []  .  ->

2)   !  ~   -(负号) ++  --   &(取变量地址)*   (type)(强制类型)    sizeof

3)   * / %

4)   + -

5)   >> <<

6)   > >= < <=

7)   == !=

8)   &

9)   ^

10)  |

11)  &&

12)  ||

13)  ?:

14)   =  +=  -=  *=  /=   %=  |=   ^=   &=   >>=   <<=

15)  ,

ps:结合性:2   13  14  是从右至左,其他都是从左至右。

&lbrack;转&rsqb;说说C语言运算符的&ldquo&semi;优先级&rdquo&semi;与&ldquo&semi;结合性&rdquo&semi;

补充自己的一点理解: 1.关于++i 与 i++的区别. ++i 和 i++如果是单独使用的语句,即二者后面均加上分号,或者其他单独使用的语句,没有任何区别.例如: for(i=0;i<100; ...

C语言运算符的优先级

熟悉C语言的同学都知道,C语言众多的运算符及繁琐难记的优先级总是搞得我们这些C初学者头大.那么本文就 对C语言中所有的运算符进行汇总,并对其优先级进行一定的介绍. 这里虽然对所有C运算符的优先级进行了 ...

说说C语言运算符的&OpenCurlyDoubleQuote;优先级”与&OpenCurlyDoubleQuote;结合性”

论坛和博客上常常看到关于C语言中运算符的迷惑,甚至是错误的解读.这样的迷惑或解读大都发生在表达式中存在着较为复杂的副作用时.但从本质上看,仍然是概念理解上的偏差.本文试图通过对三个典型表达式的分析,集 ...

c语言中 &ast;p&plus;&plus; 和 &lpar;&ast;p&rpar;&plus;&plus; 有什么区别&quest;以及C语言运算符的优先级。整理。

*p++是指下一个地址. (*p)++是指将*p所指的数据的值加一. C编译器认为*和++是同优先级操作符,且都是从右至左结合的,所以*p++中的++只作用在p上,和*(p++)意思一样:在(*p)+ ...

C语言运算符的优先级与结合性

结合性:左结合是从左到右依次执行,右结合是从右到左依次执行. 优先级 运算符 名称或作用 运算类型 结合方向 特点 1 () [] -> . 小括号运算符 下标运算符 指向结构成员运算符 结构成 ...

C语言语法之运算符及优先级

注:该内容整理自以下链接. http://blog.csdn.net/huangblog/article/details/8271791 表:C语言运算符及优先级 优先级 运算符 名称或含义 使用形式 ...

C语言运算符优先级及结合性

今天去翻了下C语言运算符的优先级和结合性,发现当初学习的时候就没认真记住,惭愧.发现一篇讲得不错的文章,编辑了下转来供以后翻阅. C语言运算符优先级表(由上至下,优先级依次递减) 运算符 结合性 () ...

C语言的本质(7)——C语言运算符大全

C语言的本质(7)--C语言运算符大全 C语言的结合方向 C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左).例如算术运算符的结合性是自左至右,即先左后右.如有表达式 x- ...

c 语言 运算符 优先级

C 语言 运算法优先级 从高 到 低 优先级 运算符 功能 适用范围 结合性 15 () [] . -> 括号 下标 存取成员 存取成员 表达式 数组 结构联合 结构联合 → (左→右) 14 ...

随机推荐

Linq to XML---网站地图和RSS Feed&lpar;ASP&period;NET的SEO&rpar;

本系列目录网站地图的作用是让搜索引擎尽快的,更多的收录网站的各个网页.    这里我们首先要明白一个基本的原理,搜索引擎的爬行方式.整个互联网就像一张纵横交错的"网":网的各个节点 ...

Generate the Jobs script from msdb Database

前两周,由于数据库简繁体的转换,大量的数据库需要转到新的服务器. 在转其中的一台的时候,原先导出来的JOBS脚本不翼而飞(原因至今未明),而恰巧这一台服务器有90多个JOB(看下图恢复后的,注意滚动条 ...

tmod命令

tmod ./tpl --debug --no-watch --output ./tplbuild

apache一键安装脚本

近期在玩apache,首先安装apace要配置apr.apr-util,pcre,而配置这些基本都是千篇一律.所谓程序猿的精神就是降低反复性的劳动,以下请看我写的apache安装脚本: 这个脚本我也放 ...

sql 删除重复数据,保留重复数据第一条

SELECT row=ROW_NUMBER() OVER(PARTITION BY 重复字段一,重复字段二 ORDER BY GETDATE()) ,* FROM 筛选重复表名     具体实现如 ...

UVA11636-Hello World&excl;-水题

Hello World! Time limit: 1.000 seconds When you first made the computer to print the sentence "H ...

JavaScript基础知识从浅入深理解(一)

JavaScript的简介 javascript是一门动态弱类型的解释型编程语言,增强页面动态效果,实现页面与用户之间的实时动态的交互. javascript是由三部分组成:ECMAScript.DO ...

js 取得当天0点 &sol; 23&colon;59&colon;59 时间

js 取得当天0点 / 23:59:59 时间   js 取得今天0点: const start = new Date(new Date(new Date().toLocaleDateString() ...

Vue项目的打包

vue项目的打包 更改config文件夹下的index.js里的assetsPublicPath路径    将 “/”  改为  “./” build: { env: require('./prod. ...

mininet的学习之二-----miniedit可视化

安装ryu git clone git://github.com/osrg/ryu.git cd ./ryu  sudo python setup.py install mininet可视化 git ...

  • 9
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值