函数
来源:互联网 发布:医疗数据分析师 编辑:程序博客网 时间:2024/05/22 04:41
一、定义函数有哪三个内容?
1:确定函数名称。(根据函数的功能确定)
定义名称的规范:有26个字母 下划线 数字组成,但是不能以数字开头
2:确定函数的形参列表(形参类型 形参名称)
形参个数和是否需要形参是根据用户需要来定义的
3:确定返回值类型,根据函数执行完是否需要返回值给函数调用者来确定
二、函数如何声明和实现?
只要在使用之前告诉编译器函数的三要素就可以
声明函数的目的,是告诉编译器函数的名称 形参以及返回值
int getMin(int v1, int v2);
函数的声明 可以省略形参名称
int getMin(int, int);
函数的声明可以相同
int getMin(int, int);
三、函数要注意哪些?
1:返回值类型必须和return后面的类型相同
2:return单独存在的时候,后面不可以写任何语句,因为执行不到
3:函数可以没有返回值,当return后面没有任何返回值的时候,返回值类型就写void,代表着没有返回值
当函数没有返回值的时候,函数后面的return可以省略不写
4:c语言中函数可以不写返回值类型,但是如果没有写返回值类型,系统会默认返回值类型为int
同时,写了返回值类型也可以没有返回值
5:函数不能嵌套、重复定义
四,参数传递的方式有哪些?
C语言中函数参数的传递有两种方式:传值与传地址。
传值就是将实参的值传递给形参,使得形参的值与实参一样。
传地址就是将实参所在内存单元的地址传递给形参,使得形参指向实参所在的内存地址。
#include<stdio.h>int fun1(int a, int b);{ return a>b ? a : b;}int fun2(int *a, int *b);{ return *a>*b ? *a : *b;}void main(){ int x=5, y=3; int z1 = fun1(x, y); // 传值调用方式 int z2 = fun2(&x, &y); // 传地址调用方式}
五、什么是回调函数?
回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。
六、函数指针与指针函数
函数指针是指向函数的指针变量,即本质是一个指针变量。指向函数的指针包含了函数的地址的入口地址,可以通过它来调用函数。
声明格式如下:类型说明符 (*函数名) (参数)
其实这里不能称为函数名,应该叫做指针的变量名。这个特殊的指针指向一个返回整型值的函数。指针的声明笔削和它指向函数的声明保持一致。指针名和指针运算符外面的括号改变了默认的运算符优先级。如果没有圆括号,就变成了一个返回整型指针的函数的原型声明。
指针函数是指带指针的函数,即本质是一个函数,函数返回类型是某一类型的指针,首先它是一个函数,只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变量来接受,也就是说,指针函数一定有函数返回值,而且,在主调函数中,函数返回值必须赋给同类型的指针变量。
当一个函数声明其返回值为一个指针时,实际上就是返回一个地址给调用函数,以用于需要指针或地址的表达式中。
格式:类型说明符 * 函数名(参数)
由于返回的是一个地址,所以类型说明符一般都是int。
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- The jMock Cookbook简译
- 20171019测试
- 查找整数
- oracle数据库(统计函数和分组查询)
- 解决Linux加载失败问题
- 函数
- Spring MVC访问静态页面,在servlet.xml中加了mvc:resources mapping 就会出现404错误
- 网络中进程间的通信
- Git Bash学习笔记
- Codeforces 875E-Delivery Club
- 对顺序表的两个操作
- Linux命令大全网址
- Netty4实战第十一章:WebSockets
- python 数字信号的滤波器设计 signal.buffer