8-6 运算中的临时匿名变量

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

(1)C语言叫高级语言,汇编语言叫低级语言。
(2)低级语言的意思是汇编语言和机器操作相对应,汇编语言只是CPU的机器码的助记符,用汇编语言写程序必须拥有机器的思维。因为不同的CPU设计时指令集差异很大,因此用汇编编程的差异很大。
(3)高级语言(C语言)它对低级语言进行了封装(C语言的编译器来完成的),给程序员提供了一个靠近人类思维的一些语法特征,人类不用过于考虑机器原理,而可以按照自己的逻辑原理来进行编程。譬如数组、结构体、指针…
(4)更高级的语言如Java、C#等只是进一步强化了C语言的人性化的操作界面语法,在易用性上、安全性上进行了提升。

8.6.2 C语言的一些“小动作”

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

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

想要成为一个高手,那么就是要将C语言中的很多简单的内容去深入的理解,多问自己为什么?本质是什么样的?内存中怎么实现的?C语言中很多时候告诉我们编程应该怎么做,遵守一些什么样的语法规则,这些语法规则后面的原理是什么,多去学习,理解。

#include  <stdio.h> 
int main(void)
{	
	float  a = 12.34;	
	int b = (int)a;//a被强制类型转换后自己本身竟然没变	
	//(int)a强制类型转换并赋值在底层实际分了3个步骤:第一步先在另外的地方找	
	//一个内存构建一个临时变量x(x的类型是int,x的值等于a的整数部分),然后将	
	//float  a的值的整数部分赋值给x,第三步将x赋值给b,第四步销毁x。	
	//最后结果:a还是float而且值保持不变,b是a的整数部分。	
	printf("a = %f,b = %d\n",a,b);	
	return 0;
}

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

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

很多难的内容都是由简单的东西叠加起来的;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

非主流的豆瓣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值