C语言学习回顾与记录

距离最初接触C语言,已经过去许久许久。还记得一开始是看谭浩强的一本绿皮书,上面号称销量800W本。不过后来听说他都是翻译一些国外的书,然后自己汇总了一些,所以也不是很NB。最近一直在看哈佛的CS50课程,讲师真是激情四射!几度看得兴奋起来,可毕竟有些细节方面没有说得很透彻。这次上技术宅社区一逛,真是收获不小,看到了一篇C语言的总结,总结得真得是细致入微。这里简单记录一下自己之前掌握的不牢固的一些知识点,用自己的语言和理解加以描述。

1.形参和实参的区别?

形参一般是一个函数里面作为例子存在的,本身没有值,有点像商场里的样品,不可以买卖。而实参是在调用这个函数时实际赋给它的值,就像卖出去的商品,是真正可以买卖的。

2.i++和++i的区别?

简单地说,前者是先赋值,后累加;而后者是先累加,后赋值。比如1++这个表达式的值是1,因为先赋值了,而++1是2,因为先累加了。

3.break和continue的区别?

break是中断,然后结束;而continue是中断,然后重新开始。此外,switch语句中不能用continue

4.返回值的作用?

返回值主要有两个作用,一是返回给系统,作为错误标识;二是返回给调用函数,作为一个数值。

5.二维数组的跳行与跳列?

假设二维数组a[3][3],跳一行是a+1,而跳一列是a[0]+1

6.什么是脱衣法则?

a[2] 变成 *(a+2) a[2][3]变成 *(a+2)[3]再可以变成 *(*(a+2)+3)

7.*p++ 和 (*p)++的之间的差别?

p表示地址,*p表示数值;*p++地址会变化,(*p)++数值会变化

8.如何进行四舍五入计算?

默认int类型是去掉小数点后面的数,所以要进行四舍五入可以用将int类型的值后面加上0.5

9.程序的运行顺序是?

一般是从上往下,但碰到函数要先跳到函数体中等待返回值,然后继续执行。

10.转义字符的使用?

\ddd或者\xhh,前者是反斜杠后跟三位8进制数,后者是x后跟两位16进制数

Add a Comment