C语言理论题经验分享1

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("%10s", s);

Printf("%10.*s", 3,string);

//意思是输出最大长度为3的字符串,但至少占10个位置,不足的在左边用空格补齐。

4)%nd和%0nd

%nd 输出的整型宽度至少为n位,右对齐,%5d即宽度至少为5位,位数大于5则输出实际位数
%0nd 用得比较多,表示输出的整型宽度至少为n位,不足n位用0填充
printf("%05d",1)输出:00001

%0nd 用得比较多,表示输出的整型宽度至少为n位,不足n位用0填充
printf("%05d",1)输出:00001
printf("%5d",1)输出:****1(*为空格)

你可能感兴趣的:(C语言)