1.函数的概率
#include<stdio.h> int function(int x) { return x+1; } int main() { int a=0; int ret=function(a); printf("%d\n",ret); return 0; }
这个代码的运行结果是1,首先看函数,我们用了一个函数名叫function的函数,然后再看函数内部,返回类型为int是整形,而括号里的int x就是形参,我在主函数传过去的a可以对应那个x,这个函数的返回值就x+1,因为传过去的a为0,所以返回值是1;
简单来说形参就是实参的临时拷贝,进入函数后建立形参,出函数后形参销毁,实参和形参是不一样的,因为他们两个的地址不一样,所以在函数中对形参进行赋值什么的是不会对实参有任何影响的
但是当我们传入的是指针,这个时候形参和实参就是同一个数了;
接下来用代码演示:
#include<stdio.h> void InitArr(int arr[5]) { int i=0; for(i=0;i<5;i++) { arr[i]=0; } } int main() { int arr[5]={1,2,3,4,5}; InitArr(arr); int i=0; for(i=0;i<5;i++) { printf("%d\n",arr[i]); } return 0; }
这个代码的运行结果是打印5个0,为什么会这样,是因为传参时传过去的arr时首素的地址,所以在函数中对数组赋值,会对实参造成影响。
4.函数的声明与定义
4.1单个文件
在C语言中,函数的使用遵从着先声明后使用的原则,函数的定义也是⼀种特殊的声明,所以如果函数定义放在调⽤之前也是可以的。
接下来用代码解释:
#include<stdio.h> int fun1(int x) { return x+1; } int fun2(int x) int main() { fun1(1); fun2(1); fun3(1); return 0; } int fun2(int x) { return x+2; } int fun3(int x) { return x+3; }
这个代码在使用中是会报错的,原因时函数fun3在主函数前面未声明但是却使用而函数fun1和fun2都是对的,fun1声明之后直接定义,fun2声明后在主函数后定义都是正确的
4.2多个文件
可以看到当我们使用多文件实现函数时,一个源文件用来放主函数和使用自定义函数,一个源文件用来定义函数,一个头文件用来声明自定义函数,如果上面所说的使用函数时要引入对应的头文件,自定义函数的头文件不是用<>而是用" "双引号
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/87965.html