摘要:本文总结了C语言中extern关键字和函数传参的相关知识。extern用于声明外部变量,在多文件编程时将主函数和功能函数分开存放,编译时需同时编译两个文件。函数传参部分介绍了值传递(形参是实参副本)和数组传参的常用形式:整型数组传参推荐使用int fun(int array[],int len)形式,灵活性高;字符数组传参可直接用int fun(char str[]),因其能自动识别'\0'结束符。文章还通过三个数组操作示例(打印极值、冒泡排序、数组倒置)和字符串长度计算练习,演示了函数封装和参数传递的实际应用。
昨日补充:extern的用法
(1)作用:声明有个变量是外部存放的。
(2)用途:想要规范性分门别类存放代码,将函数部分和主函数部分分为两份文件存储时,我们这是就需要在主函数声明这个变量是外部储存的。同时在gcc编译时需要将两个文件同时编译。
(3)用法:在需要调用的main函数前声明,extern 函数名(形式参数1,形式参数2,...);
(3)示例用法展示:输入两个数字,实现其的加减乘除
左边是main函数部分,右边是封装函数
一、函数传参
1、值传递
(1)实际参数将值传递给形式参数,形参相当于实参的副本
(2)形式参数变化实际参数不会改变
(3)应用于:函数体内部想使用函数体外部变量值的时候,使用值传递
2、整型数组传参形式
(1)int fun(int array[5]); //适用于固定数组的类型
(2)int fun(int array[ ],int len); //比较常用,适用于非固定数组类型
(3)注意事项:数字传递到函数体内部和外部操作的是同一个数字
(4)小试牛刀1:利用封装函数实现打印数组,并输出数组的最大最小值
个人注解:
首先用数组的两种不同传参方法进行数组的打印,其次将数组传参给函数,利用函数实现输出数组的最大值最小值。
我们在应用数组传参时第二种方法更为常用,利用sizeof获得数组的长度len,若后续有要更在数值长度时,只需要更改定义时的长度。代码的可用型就很高,也很方便。
(5)小试牛刀2:
对于注意事项的训练:封装三个函数实现数组的接收,冒泡排序,打印
个人注解:
首先封装一个函数体进行数组的接收;intputarray
其次封装一个函数体进行数组内容的冒泡排序;sortarray
最后封装一个函数体进行数组的打印; outputarray
(6)小试牛刀3:封装三个函数,实现数组的接收,倒置,打印
3、字符型数组传参形式
(1)int fun(char str[ ]); //不用传长度,字符型能识别'\0'
(2)小试牛刀:封装一个函数计算字符串的长度