(1) b=*p++;

(2)b=(*p)++;

(3)b=++*p;

(4)b=++(*p);

(5)b=*++p;

(6)b=*(++p);

上面6式子,哪些是等价的?

反汇编代码:

b=*p++;

00411BD9 mov eax,dword ptr [p]

00411BDC mov ecx,dword ptr [eax]

00411BDE mov dword ptr [b],ecx

00411BE1 mov edx,dword ptr [p]

00411BE4 add edx,4

00411BE7 mov dword ptr [p],edx

b=(*p)++;

00411BEA mov eax,dword ptr [p]

00411BED mov ecx,dword ptr [eax]

00411BEF mov dword ptr [b],ecx

00411BF2 mov edx,dword ptr [p]

00411BF5 mov eax,dword ptr [edx]

00411BF7 add eax,1

00411BFA mov ecx,dword ptr [p]

00411BFD mov dword ptr [ecx],eax

b=++*p;

00411BFF mov eax,dword ptr [p]

00411C02 mov ecx,dword ptr [eax]

00411C04 add ecx,1

00411C07 mov edx,dword ptr [p]

00411C0A mov dword ptr [edx],ecx

00411C0C mov eax,dword ptr [p]

00411C0F mov ecx,dword ptr [eax]

00411C11 mov dword ptr [b],ecx

b=++(*p);

00411C14 mov eax,dword ptr [p]

00411C17 mov ecx,dword ptr [eax]

00411C19 add ecx,1

00411C1C mov edx,dword ptr [p]

00411C1F mov dword ptr [edx],ecx

00411C21 mov eax,dword ptr [p]

00411C24 mov ecx,dword ptr [eax]

00411C26 mov dword ptr [b],ecx

b=*++p;

00411C29 mov eax,dword ptr [p]

00411C2C add eax,4

00411C2F mov dword ptr [p],eax

00411C32 mov ecx,dword ptr [p]

00411C35 mov edx,dword ptr [ecx]

00411C37 mov dword ptr [b],edx

b=*(++p);

00411C3A mov eax,dword ptr [p]

00411C3D add eax,4

00411C40 mov dword ptr [p],eax

00411C43 mov ecx,dword ptr [p]

00411C46 mov edx,dword ptr [ecx]

00411C48 mov dword ptr [b],edx答案:(3)=(4),(5)=(6)

c语言乘法除法结合律,有关C语言运算符优先级和结合律的思考相关推荐

  1. pic单片机c语言乘除法,PIC单片机C语言程序设计(2)

    五.C语言的标识符和关键字本文引用地址:http://www.eepw.com.cn/article/171168.htm 一个完整的PICC语言程序,通常由包含文件(即头文件1,变量定义.变量说明. ...

  2. C语言应用笔记(一):运算符优先级和使用问题

    C 语言运算符是说明特定操作的符号,它是构造 C 语言表达式的工具.C 语言的运算异常丰富,除了控制语句和输入输出以外的几乎所有的基本操作都为运算符处理.除了常见的三大类,算术运算符.关系运算符与逻辑 ...

  3. 计算机C语言乘法除法优先级,运算符优先级

    运算符的优先级决定了表达式的评估顺序. 下表显示了C语言中所有运算符的优先顺序,优先顺序是从顶部的最高到底部的最低. | 优先级 运算符 描述 |--------------------------- ...

  4. c语言乘法表 m*(9-i),C语言做九九乘法表.doc

    C语言做九九乘法表 #include void main() { int i,j,x; /*第一种*/ printf("第一种:\n"); for(i=1;i<=9;i++) ...

  5. c语言为什么除法会四舍五入,C语言学习(2)

    C语言代码编写规范 第一个:注意缩进 用tab键缩进对齐 第二个:适当的空行 第三个:注释,简明扼要 C语言注释只有两种写法: 第一种:单行注释    //注释文字 第二种:块注释  /*  注释的内 ...

  6. pic单片机c语言乘除法,PIC单片机C语言编程教程(1)

    原代码调试.使用 MPLAB-IDE 内的调试工具 ICE2000.ICD2 和软件模拟器都可以实现原 代码级的程序调试,非常方便. 首先必须在你的计算机中安装PICC编译器,无论是完全版还是学习版都 ...

  7. c语言noj除法,快速排序~C语言~NOJ1064

    比赛描述 给定输入排序元素数目n和相应的n个元素,写出程序,利用内排序算法中快速排序算法进行排序,并输出排序最后结果的相应序列. 输入 共两行,第一行给出排序元素数目n,第二行给出n个元素,1≤n≤1 ...

  8. C语言之运算符优先级(四十二)

    运算符组合方式 表达式 结合律 组合方式 a/b%c 从左到右 (a/b)%c a=b=c 从右到左 a=(b=c) 运算符优先级和结合律 优先级 运算符 结合律 1 后缀运算符:[]    ()   ...

  9. c语言赋值运算与除法运算顺序,C语言运算符的优先级和结合律

    如果一个表达式包含两个或两个以上的运算符,那么操作数的结合方式将决定这个表达式的结果.为了简便,我们把包含两个或两个以上运算符的表达式称为复合表达式.例如:3 + 2 * 5 如果 3 和 2 结合在 ...

  10. c语言整形如何正确使用除法,简单的C语言移位计算整形乘法和除法值

    最近一直都没写什么文章,随便写点最近看到的东西.首先要提一点,在SOC系统中,运算速度一般是移位>乘法>除法. 1.乘法. 最简单的A*B,用C语言for循环 for(int i=0;i ...

最新文章

  1. android 导入开源项目代码常见问题
  2. 大学生一定记得要做的十八件事情
  3. 0079-简单的循环
  4. Ubuntu中安装、生成、导入、导出、Python3虚拟环境
  5. Linux下的gpio,gpiod
  6. c语言格式错误pe,C语言PE文件filebuffer到imagebuffer的错误
  7. linux管道通信机制有哪两种,linux的管道通信机制
  8. 帮助您快速开始下一个移动APP应用模板、UI设计
  9. Linux中MongoDB的安装
  10. Load error: undefined path variables 记录一次IDEA崩溃
  11. oppo9s刷机教程_OPPOR9S刷机包
  12. 小白如何快速入门数学建模
  13. 机器学习数据的划分和介绍
  14. python怎么检查页面边距_Matplotlib页边距
  15. 机器人控制学习机器编程代码_带上机器人,让他们维护我们的代码!
  16. 没有计算的推理和基于推理的计算 逻辑与算法之五
  17. “火星一号”项目计划于2026年实现载人登陆火星
  18. XILINX K7 DDR3引脚验证总结
  19. 都有“减少”的意思,decrease和reduce、lower, Diminish,lessen ,Dwindle ,Descend,Abate怎么区分?
  20. CloudXNS首次使用体验

热门文章

  1. 【单目标优化求解】基于matlab混沌生物地理算法求解单目标问题【含Matlab源码 1411期】
  2. 【图像增强】基于matlab GUI图像双边滤波【含Matlab源码 1492期】
  3. 误用检测_如何(不)在创业中误用人工智能
  4. Bootstrap模态框中再嵌套模态框导致第一个模态框的滚动条消失
  5. pgm图像缩小C语言,C++将二进制(P5)图像转换为ascii(P2)图像(.pgm)
  6. c++ map 修改value_深度解密Go语言之map
  7. 捡到iphone6怎么解锁_赛博朋克2077前期手枪用哪个好?2077节制结局及银杯节制解锁条件...
  8. linux裸磁盘的配置,【存储】nas模拟裸磁盘挂载swift
  9. java 释放对象_java基础:对象的销毁
  10. resin session共享 redis_Spring Boot 利用Redis实现session共享