C语言--函数(方法)
来源:互联网 发布:知乎 俄罗斯电影 编辑:程序博客网 时间:2024/06/03 14:55
不墨迹,直接上代码:
int main(int argc,const char * argv[]) {
printf("Hello World!!");
return 0;
}
上面的一段代码就是一个函数,而且是C语言中最重要的main函数。所谓函数,在我的理解就是将一组语句放在一起的一次封装。我们在开发中常常会写很多的函数,而我们写的函数的目的就是为了将一个功能的语句放在一起,方便代码的管理和阅读。
函数声明 :int main(int argc, const char * argv[]);
函数的声明是告诉编译器函数名称,函数返回值类型,函数的参数。从上面的代码中我们可以看到,函数名称是main,返回值类型是int也就是一个整型,函数的参数为()内的东西。
函数在编写时除了上面函数声明时的3部分外,还要有函数的主体,也是函数要处理问题的代码语句。在上面的代码中printf("Hello World!!");就是这个函数的主体,表示打印 Hello World!!
下面我们来写一个函数,用这个函数来解析函数从声明到定义的所有内容。
声明一个两个数相加求和的函数,函数名为addTwoNum,并可以接受两个参数a和b,函数执行完毕后将求和结果返回。代码如下:
int addTwoNum(int a,int b){
int num = a + b;
return num;
}
这里第一个int表示这个函数的返回值是一个int类型的数字,()内的int表示函数参数的类型是int类型的数字,{}内的int是声明了一个int类型的变量num。关键字return表示这个函数的返回值就是return后面跟着的num。现在看来,函数真的很简单。就是将一个功能的代码放在一起,然后考虑要不要参数,要不要返回值。那么,下面我们再来看看这个函数怎么调用起来,用它来计算。
int main(int argc,const char * argv[]) {
int c = 0;
c = addTwoNum(2, 3);
printf("%d\n", c);
return 0;
}
上面这段main函数中的代码就是对addTwoNum这个函数的调用,首先定义一个int类型的变量c,然后将函数addTwoNum的返回值赋值给c最后打印出c。前面我们说到了函数的参数,c = addTwoNum(2, 3);这里的2和3就是函数addTwoNum的参数,而且对应关系是2->a 3->b。
说到这里,我们可以看到,很多地方出现了参数这个词。那么我们就来好好说一说参数这个东西。
int addTwoNum(int a, int b){}这里的a和b我们叫做参数,addTwoNum(2, 3)这里的2和3我们也叫做参数。这里面有什么区别的地方么?当然有,
在上面说到的参数中,a和b我们称之为形式参数,2和3我们称之为实际参数。所谓形式参数,表示这个变量就是一个形式,没有具体的值,取值要取决于调用的时候所赋予的实际参数,调用时给函数传递的是多少,那么形式参数在函数中使用时的值就是多少。再说实际参数,这个是在函数调用时给函数的形参赋予的实际值,类型与形参类型相同。
用一句话概括,形参决定类型,实参决定大小。
说完了上面的参数,那么有没有没有参数的函数啊?当然,肯定是可以的,上一篇文章说到数据类型中的void类型的时候就有提到过函数的参数为空。那么下面我们就来写一个没有参数的函数:
int max(){
int a = 40;
int b = 10;
if (a > b) {
return a;
}else{
return b;
}
}
从上面的函数可以看出,函数max的()中的内容为空,很显然,形式参数为空,那么就是没有参数了。也可以在()中添加一个void。表示参数为空。对于无参数的函数的调用,那就更简单了,因为没有参数,所以我们在调用的时候就不用再给函数传递实参了。直接int d = max();这样就可以了。
对于上面说到的函数调用,都是很简单的传值调用。还有一种调用方式是引用调用,是通过指针传递的方式,形参为指向实参的指针。有兴趣的可以去自行百度。
说完了参数,那么我们再来说一说返回值,我们上面写的函数都是有返回值的函数,在上一篇文章说到void类型的时候就说过函数的返回值为void的情况,也就是返回值为空。
void min(int a,int b){
if (a>b) {
printf("%d\n", a);
}else{
printf("%d\n", b);
}
}
这就是一个简单的没有返回值的函数,很容易理解,因为没有return这个关键字了。同理,没有的返回值,那么在调用的时候也就不用定义变量去接收了。直接调用即可:Hello();
这里需要注意一点。C语言的编译器是顺序执行的,对于函数,若是没有函数声明,必须是写在main前面,提前编译,不然运行的时候,会因为找不到对应的函数而报错。
- C语言--函数(方法)
- C语言(函数)
- C语言函数二维数组传递方法
- C语言函数返回多个值的方法
- C语言函数返回多个值的方法
- C语言:函数二维数组传递方法
- C语言函数二维数组传递方法
- C语言打印函数堆栈方法
- 深入了解C语言(函数的参数传递和函数使用参数的方法)(转)
- c语言函数定义,函数传参方法,数据结构
- 函数调用(C语言)
- C语言函数(一)
- C语言函数(二)
- pipe 函数 (C语言)
- pipe 函数 (C语言)
- C语言函数clock()
- C语言sizeof()函数
- C语言函数clock()
- redis k-v最操作
- 模糊聚类分析之基础
- 断点上传方案
- http 长连接 短连接 持久连接
- PopupWindow(2)
- C语言--函数(方法)
- service redis does not support chkconfig的解决办法
- adb无法使用,error: unknown host service
- 本人同步文档工具小计
- Eclipse导入已有工程
- 蓝牙音频A2DP(一)-- A2DP音频设备加载
- JS小数运算丢失精度计算错误等解决方案
- android自定义控件(星级评分)
- 笔记:Jquery遮罩ShowLoading组件