C语言(十):函数
来源:互联网 发布:红警2 win7 网络进不去 编辑:程序博客网 时间:2024/06/05 19:31
1.函数的原型和调用
在使用函数前必须定义或者声明函数
double circle(double r);int main(){ double length = circle(10); printf("length = %f\n", length); return 0;}double circle(double r){ return 2 * 3.14 * r;}
2.函数的形参与实参
在调用函数的时候,函数大多数都有参数,主调函数和被调用函数之间需要传递数据。
在定义函数时函数名后面括弧中的变量名称为“形式参数”,简称形参。在调用函数时,函数名后面括号中的变量或表达式称为“实际参数”,简称实参。
- 形参在未出现函数调用时,他们并不占用内存单元,只有在发生函数调用的时候形参才被分配内存,函数调用完成后,形参所占的内存被释放
- 实参可以是变量,常量或者表达式
- 在定义函数时,一定要指定形参的数据类型
- 形参与实参的数据类型一定要可兼容
- 在C语言中,实参与形参的数据传递是“值传递”,即单向传递,只由实参传递给形参,而不能由形参传递给实参。
如果函数的参数是个数组,那么是可以通过形参修改实参的值的
3.函数的返回类型与返回值
- 列表内容函数的返回值通过函数中的return获得,如果函数的返回值为void可以不需要return语句。
- 函数return语句中的返回值数据类型应该与函数定义时相同。
- 如果函数中没有return语句,那么函数将返回一个不确定的值。
main函数与exit函数与函数的return语句
int test1()
{
printf(“111111\n”);
//return 0;exit(0);//在子函数中调用exit同样代表程序终止,但在子函数中调用return只是子函数终止,程序正常执行printf("222222\n");
}
int main()
{
test1();
printf(“AAAAAA\n”);
exit(100);//exit是C语言的库函数,调用exit的结果就是程序终止
return 100;//在main函数中调用exit与调用return是一样的
printf(“CCCCCCC\n”);
return 0;//main函数return代表程序终止printf("BBBBBB\n");
}
4.多个源代码文件程序的编译
头文件的使用
如果把main函数放在第一个文件中,而把自定义函数放在第二个文件中,那么就需要在第一个文件中声明函数原型。
如果把函数原型包含在一个头文件里,那么就不必每次使用函数的时候都声明其原型了。把函数声明放入头文件是很好的习惯。
#include与#define的意义
#include就是简单的文件内容替换
#define就是简单的文本替换而已
#ifndef与#endif
#ifndef的意思就是条件预编译,如果#ifndef 后面的条件成立,那么就预编译从#ifndef开始到#endif之间的代码,否则不会去预编译这段代码
5.函数的递归
函数可以调用自己,这就叫函数的递归
void up_down(int n){ printf("in %d, location %p\n", n, &n); if (n < 4) up_down((n + 1)); printf("out %d, location %p\n", n, &n);}int main(){ up_down(1); return 0;}
递归的优点与缺点:
优点:递归给某些编程问题提供了最简单的方法
缺点:一个有缺陷的递归会很快耗尽计算机的资源,递归的程序难以理解和维护。
- C语言(十):函数
- C语言函数集(十)
- C语言函数集(二十)
- 二十一天学通C语言:函数型指针
- C语言入门教程 (十) 函数的定义和调用
- 【C语言天天练(二十)】scanf函数详解
- 巩固C语言(十)----指针数组 & 函数指针和指针函数
- C语言学习历程(十)“函数指针”与“指针型函数”
- [C语言学习]作业十
- c语言学习笔记十
- 【C语言】C语言函数
- C语言函数 --C
- linux编程学习笔记(十) C语言中的函数隐式声明
- C语言学习笔记(十)--指针
- c语言学习笔记二十
- C语言也能干大事十五节
- C语言程序学习(十)笔记
- 黑马程序员--------------------------------------------C语言学习记录十
- 卷积神经网络调参技巧
- POJ 1836 Alignment <LIS(单调栈优化)>
- Java输出当前的日期(年月日时分秒毫秒)
- weixin4j微信开发-零开发新手接入
- 【GDOI2018模拟7.10】B
- C语言(十):函数
- jQuery event.target属性
- json与for in、json的对象的删除和其属性值得删除
- 排序算法学习
- Error opening new searcher
- vector的遍历和赋值的性能测试
- Fmod VS2008配置方法
- 图像样式改变及添加音乐评论,主题
- 利用 Lua 实现 App 动态化方案