函数参数的作用
函数参数是将数值参数传递给函数以供使用。当数值被传递时,将会重新创建一个变量,这使得如果传递的数值并非地址的话,修改形参的值并不会影响原有的数据。函数的参数可以有多个。
函数参数的种类:
包括基本数据类型:整型,长整型,浮点型,字符型等;还有复合类型:包括数组,结构,以及对象等,还有函数的指针等。
基本数据类型一般是按值传递。
对于数组而言,传递的并非完整的数组数据,而是一个指针,*ar和ar[]都是表示同一地址的不同表现形式。数组是一个整体,在内存中占据一整段连续的存储单元。
对于结构而言,尽管结构是一个储存多个数据的实体,但在函数中与基本的单值变量的行为更为接近,也即是说,结构在进行传递时也将进行复制,这样一来,在结构非常大的时候,复制结构将增加内存要求,降低系统运行速度,因此,通常在结构数据较小时采取按值传递,在较大时采取传递地址的方式。
对于类对象而言,由于其基于结构的特点,因此在结构编程方面的有些因素也适用于类。例如可将一个结构赋给另一个结构,也可将一个对象赋给另一个对象,可将结构作为完整的实体进行传递,也可将对象作为完整的实体进行传递。
值得注意的是,采取传递地址的方式,比起按值传递,一般节约内存,也能提高效率。
常见的问题
为什么c程序main函数中用return 0而不是其他的值?
向main函数返回之后将调用EXIT函数,此时main函数的返回值将作为EXIT函数的参数。
当参数为0或者EXIT_SUCCESS,将向外部环境报告程序运行成功;而参数为EXIT_FAILURE时,则报告程序运行失败;其他的值效果不确定。而return 0是有定义的,具备可移植性。
还有很多细节未补充,有空会补上的。