C语言理论题经验分享1
文章目录
-
- C语言理论题经验分享1
-
- 1.机器语言、汇编语言、高级语言
- 2.位运算
- 3.关于i 和 i
- 4.输出格式
-
- 1)不按标准的占位符输出,会输出垃圾值junk value
- 2)**%.nf和%m.nf的含义:**
- 3) 关于 "%*s":
- 4)%nd和%0nd
我们在学习C语言的时候可能经常会遇到各种各样***稀奇古怪***(==你不会)的理论题,虽然在实际应用中可能遇不到这些情况,但是掌握这些基础理论知识对加深我们对C语言的理解和学习有很大好处。
以下是本菜鸡整理的一些在学习中遇到的理论题问题,如发现有误,敬请大佬们指正:
1.机器语言、汇编语言、高级语言
计算机语言的种类非常的多,总的来说可以分成机器语言、汇编语言,高级语言三大类。
机器语言,顾名思义就是机器使用的语言,被认为是最低级的语言。它按照机器的逻辑行事,与人类的思维逻辑大相径庭。每一操作码在计算机内部有相应的电路直接完成。
汇编语言,只是将机器语言做了简单编译,所以并没有从根本上解决机器语言的特定性,所以汇编语言和机器自身的编程环境息息相关,推广和移植很难,但是还是保持了机器语言优秀的执行效率。
高级语言,就是我们现在编程过程中广泛使用的语言,更贴近人类的思维逻辑,并且是可移植的。
2.位运算
在计算机中,数据实质上都是以二进制形式存储的。因此,机器在执行指令时是对二进制数据直接操作。其中就涉及到位运算(对整数的二进制位直接操作)。
关于位运算详情可以戳这篇文章:
位运算
3.关于i 和 i
1)i 在表达式中时,先用原 i 进行运算操作,再给 i 加1
2)for循环()中,i 和 i的效果相同
4.输出格式
1)不按标准的占位符输出,会输出垃圾值junk value
(example : float a = 2.3;printf("%d", a); we will have a answer “178342647553”)
2)%.nf和%m.nf的含义:
格式控制符m.n,m表示输出数据总宽度(包括小数点 . ),n表示数据精度,具体因数据类型而不同。
m:总宽度,包括小数点
n:小数部分位数,四舍五入
%m.nf 总长度为m,小数点后面保留n位,不足就前面加空格来补
%.nf 总长度不限,小数点后面保留n位,不足补零
3) 关于 “%*s”:
在printf中使用,表示用后面的形参替代的位置,实现动态格式输出。
printf("%*s", 10, s);
//意思是输出字符串s,但至少占10个位置,不足的在字符串s左边补空格,这里等同于printf("s", s);
Printf(".*s", 3,string);
//意思是输出最大长度为3的字符串,但至少占10个位置,不足的在左边用空格补齐。
4)%nd和%0nd
%nd 输出的整型宽度至少为n位,右对齐,]即宽度至少为5位,位数大于5则输出实际位数
%0nd 用得比较多,表示输出的整型宽度至少为n位,不足n位用0填充
printf("d",1)输出:00001
%0nd 用得比较多,表示输出的整型宽度至少为n位,不足n位用0填充
printf("d",1)输出:00001
printf("]",1)输出:****1(*为空格)