当前位置: 首页 > news >正文

C语言运算中的临时匿名变量

一:C语言和汇编的区别(汇编对应机器操作,C语言对应逻辑操作)

        (1)C语言叫高级语言,汇编语言叫低级语言

        (2)低级语言的意思是汇编语言和机器操作相对应,汇编语言只是机器码的助记符,用汇编语言必须有机器的思维。因为不同的cpu设计时指令差异很大,因此用汇编编程的差异很大

        (3)高级语言(C语言)它对低级语言进行了封装(C语言的编译器来完成),给程序员提供了一个靠近人类思维的一些语法特征,人类不用过于考虑机器原理,而可以按照自己的逻辑原理来编程。譬如数组、结构体、指针 ......

        (4)有更高级的语言如JAVA、C#等只是进一步强化了C语言提供的人性化操作界面语法,在易用性上安全性上进行了提升

二:C语言的一些“小动作”

        (1)高级语言中有一些元素是机器中没有的

        (2)高级语言在运算中允许大跨度的运算。意思就是低级语言中需要好几步才能完成的一个运算,在高级语言中只需要一步即可完成。譬如在C语言中一个变量i要进行加1,在C语言中只需要一句i++即可,看起来只有一句代码,但实际翻译到汇编阶段需要3步才能完成:第一步从内存中读取i到寄存器,第二步对寄存器中的i进行加1,第三步把计算的到的结果写回到内存中的i

三:使用临时变量来理解强制类型转换

        

#include <stdio.h>int main(void)
{float a = 12.34;int b = (int)a;printf("a = %f\nb = %d\n",a,b);        //输出结果a = 12.340000 b = 12//(int)a在强制类型转换并赋值时其实进行了四个步骤:第一步先在另外的地方找一个内存构建了一个临时            //变量x(x的类型是int,x的值等于a的整数部分),第二步将float a 的值的整数部分赋值给x,第三步将 //x的值赋值给b,第四步将临时变量x销毁//最后的结果:变量a的值不变,b的值是a的整数部分return 0;}

四:使用临时变量来理解不同数据类型之间的运算

        

#include <stdio.h>int main(void)
{int b;float a,f;b = 10;f = 1.5;a = b / f;printf("a = %f\n",a);        //输出结果a = 6.666667}

        

#include <stdio.h>int main(void)
{int b;float a;b = 10;a = b / 3;        //第一步先计算 b / 3 ,第二步将计算后的值强制转换为float类型的临时变量//第三步将临时变量的值赋值给a,最后销毁临时变量printf("a = %f\n",a);        //输出结果为3.000000}

        

相关文章:

  • JY-156/1静态电压继电器 板前接线 约瑟JOSEF
  • 人工智能中实现自动化决策与精细优化的核心驱动力
  • MySQL:概念、逻辑与物理结构设计详解
  • 【npm】console工具(含胶囊,表格,gif图片)
  • Http协议:Http缓存
  • VST3音频插件技术介绍
  • RequestHeader 异常拦截机制
  • 软考阅卷将完成?!软考成绩有望六月底公布!
  • Nginx缓存之web缓存配置
  • springmvc拦截器 和 异常拦截器
  • ai代码问题记录
  • 光纤三维布里渊温度和应变分布matlab模拟与仿真
  • 心跳机制讲解及实例
  • token无感刷新
  • 装饰者模式(设计模式)
  • 【React系列】如何构建React应用程序
  • Android Studio:GIT提交项目到远程仓库
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • Hibernate最全面试题
  • Js基础——数据类型之Null和Undefined
  • Mybatis初体验
  • ng6--错误信息小结(持续更新)
  • oldjun 检测网站的经验
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • 测试如何在敏捷团队中工作?
  • 初识MongoDB分片
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 每天一个设计模式之命令模式
  • 前端路由实现-history
  • 前端性能优化——回流与重绘
  • 推荐一个React的管理后台框架
  • 异步
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ​Java并发新构件之Exchanger
  • #每天一道面试题# 什么是MySQL的回表查询
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (LLM) 很笨
  • (八)Flink Join 连接
  • (佳作)两轮平衡小车(原理图、PCB、程序源码、BOM等)
  • (六)c52学习之旅-独立按键
  • (三)终结任务
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (四) 虚拟摄像头vivi体验
  • (一)Dubbo快速入门、介绍、使用
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .naturalWidth 和naturalHeight属性,
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径