函数

来源:互联网 发布:医疗数据分析师 编辑:程序博客网 时间: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。

原创粉丝点击