由于期末考试,好长时间都没有认真学习c语言了。大一上学期学校开的是计算机导论和Python,等寒假过后再开c语言的课程;导论就让我们系统的了解了一下计算机,Python让我们初识计算机编程的魅力(再Ubuntu的vim中),但是由于时间有限,Python只到了字符串,后面的很多东西都没有时间来讲,本来想再深入的研究一下,但是还是选择从c语言入手吧,下学期还有一个比赛,要求用c语言或者c++,所以学习思路打算从c到c++,再转到Java。目前的情况,c语言学的并不是很多,基本的数据类型,顺序结构,选择结构,循环学得差不多,练习的还挺多;数组和字符串略有了解,缺乏大量的练习,不够熟练;指针目前对我来说还是比较的抽象,云里雾里的感觉;也稍微解除了算法,就简单的排序问题来说,最简单的冒泡排序的确容易理解,但是在处理大量数据时显然不适用,复杂度太大,需要花费太多的时间;而快排的效率就搞多了,复杂度低,节省时间......
寒假的时间是从小到大最长的一次了,直到二月底才回学校,这一个多月的时间只要好好把握,相信一定能够比其他同学走得更远!
今天很尴尬,在大床上睡的第一个夜晚,却睡到了10点半,下午又去街里洗了澡,白天也就这样过去了,晚上9点多才想起来该看会书了。。。今天看了函数的一节,关于自定义函数,以前也用过自定义的函数,但是不知道明确的规范,老是好出错,今天系统的看了一下,也不是很难。首先要知道自定义函数由函数原型,函数调用和函数定义三个部分呢组成;函数原型告诉编译器函数的类型,函数调用表示在哪执行函数,函数定义明确指出该函数要干什么。
void star(void);
这里第一个void是函数类型,void表面没有返回值;star是函数名;第二个void表明改哈桉树不带参数。函数原型放在main()前或者main()里面的声明变量处都可以。当main中遇到star()时,执行star函数里面的语句,执行完成后回到main中继续执行下一条语句。自定义函数与主函数可以在一个文件,也可以不在一个文件。
自定义函数中的变量只是局部变量,在程序的其他地方人可以使用同名变量,不会造成冲突。
自定义函数相当于一个黑盒,与main函数存在传入与传出的关系。(私有的局部变量与其他函数的同名变量相互独立,互不影响)
void dubs(int x,y,z);/*无效*/
void dubs(int x ,int y,int z);/*有效*/
每个变量前都必须声明类型!这里的变量都是形式参数,简称形参,属于局部变量,该函数私有,不会与其他函数中的同名变量冲突。
在使用接受变量的自定义函数时,形式参数来自被调函数,实际参量来自主调函数赋给被调函数的具体值(可以是表达式的具体值)。在被调函数执行时,不会影响主调函数中的原始数据。形参是函数头中圆括号中的变量,实参是函数调用时圆括号中的表达式。
返回值的应用,关键字return 后面的就是返回值,该自定义函数时什么类型的,返回值就是什么类型的,如果结果是min=2.34,但是函数时int型,则最终的结果是2;同时return 语句可以用来结束自定义函数,回到主函数中继续执行下一条语句。
不知不觉又到了下一天,可能这一天出去有事,尽量要抽出时间继续看书,出去不看c prime plus,可以看看《追风筝的人》陶冶情操!
--------------
1.15更新
ANSI C函数原型,通过函数原型来声明函数的返回类型,参数的数量和每个参数的类型;可以检测函数调用与函数原型是否匹配,类型不匹配时,编译器会把实际参数的类型转化为形式参数的类型,有可能会造成数据的丢失。
错误和警告的区别是:错误导致无法编译,而警告仍然允许编译。(许多编译器允许用户选择警告等级来控制编译器在描述警告时的详细程度)