函数十个问答
来源:互联网 发布:js bind 用法 编辑:程序博客网 时间:2024/05/29 17:30
1、函数的介绍?
函数简介:函数是C语言程序的基本模块,函数一般可以从3中角度进行分类:
从函数定义角度:
库函数:库函数由C系统提供,用户无需定义,可以直接调用。
用户自定义函数:用户自己编写的函数,在调用的函数中还必须对被调用函数进行类型说明才能使用。
从返回值角度看:
有返回值的函数:有返回值的函数在被调用后将向调用者返回一个执行结果,这个结果就是返回值,用户在定义这种函数时应该说明返回值类型。
无返回值函数:无返回值函数用于完成某项特定的功能,执行完成后不用返回函数值,用户定义时声明这种函数的返回值为空类型,即void。
从数据传输来看:
无参函数:无参函数是指函数在定义和调用中均不带参数,调用和被调用函数之间不进行参数传递。
有参函数:参数包括形式参数和实际参数,在函数定义和说明时的参数称之为形参,调用时给出的函数称之为实参。
函数的定义
定义的一般形式:
类型说明符函数名(类型名 形式参数1,类型名 形式参数2,.....)
{
函数体
}
函数名:是一个标示符,取名要求有意义、简短,同一源程序文件中不能重名。
类型说明符:值函数的返回值类型,使用void来指定函数无返回值,返回值类型可以是基本类型也可以是指针、结构体和用户自定义类型。
形式参数:定义函数时的参数称之为形式参数,参数列表说明了参数的类型和个数,一下两种方式都是正确的:
intmax(int a,intb){
Return0;
}
intmax(a,b)
inta,b;{
Return0;
}
函数体:即函数具体功能的实现。
2、无参函数定义格式是什么?
类型标识符 函数名()
{
语句
}
注:一般无参函数不需要返回值,所以类型标识符而已写void
3、有参函数定义格式是什么?
类型标识符 函数名(形式参数表列)
{
声明部分
语句
}
注:形参是变量,在括号内需要给出形参的类型说明,例 int i;
4、函数如何实现调用?
函数调用的一般形式:
函数名(参数列表);
有返回值的函数调用:
int max(int x,int y){
returnx>y?x:y;
}
调用该函数:
a=max(a,b);
无返回值的调用
voidprintstart(int n){//输出n个星号
inti;
for(i=1;i<n;i++){
printf("*");
}
}
调用该函数:
pirntstart(5);//输出5个星号
被调用函数的声明和函数原型
除去scanf和printf两个函数外,任何系统标准函数的调用都必须在本文件的开头用编译预处理命令#include将函数所在的头文件信息包含到本文件中。例如:#include"stdio.h"
如果被调用的函数是用户自己定义的函数,除了对函数功能的定义以外,通常还应在主调用函数或主调函数所在的源文件中对被调用函数进行声明,其目的是指出被调用函数的返回值类型和参数的个数和类型,以便在调用该函数时系统按此进行检查。
声明函数的一般格式是:
类型标示符函数名(参数类型1,参数类型2,...);
调用函数和主调用函数的位置关系主要分为三种情况:
(1)调用函数和主调用函数在同一文件中,且主调函数在调用函数的前面。
(2)调用函数和主调用函数在同一文件中,且主调函数在调用函数的后面。
(3)调用函数和主调用函数不在同一文件中。
5、形参和实参的区别;
函数定义中的参数是形式参数,函数调用者给函数的参数是实际参数,在函数调用之前,实际参数的值将被复制到形式参数中。
注:因为是复制,所以操作形参时不会影响到实参。(地址传值不算)
6、函数调用的步骤:
①:通过函数名,找到函数入口地址
②:给形参分配空间
③:数值传递
④:执行函数体
⑤:返回
⑥:释放空间
7、程序如何实现模块化?
在程序设计过程中大多数程序要比我们之前设计的程序复杂的多,传统的设计方法是“自定向下,逐步求精”的过程。该过程就是将一个大的问题按照层次分解成多个方便解决的小问题,直至各个功能模块,每个单独的功能模块可以单独设计,最后将所有的功能模块有机的结合成完整的程序。
8、参数传递是啥?
C语言在发生有参函数调用时,实参变量和形参变量之间的数据都是单向的“值传递”方式,包括指针变量和数组名作参数的情况。
9、如何利用全局变量:
当函数被调用时,全局变量被更改,我们再把更改后的全局变量值应用于主函数中。
10、什么是回调函数?
如果你把函数指针(函数的入口地址)传递给另一个函数,当这个函数指针被用来调用它所指向的函数时,我们就就说这个函数时回调函数。
- 函数十个问答
- NTFS的十个精彩问答
- 数组和指针十个问答
- oracle常用函数问答
- oracle常用函数问答
- [智力问答] 十个最难的字 你认识几个
- C++经典问答 inline 函数
- javascript十个流行的函数
- 问答
- 问答
- 问答
- SQL存储过程、函数、触发器、游标问答
- 创业者对商业行为合法性有疑问?来看看《反不正当竞争法》的十个问答
- javascript十个最常用的自定义函数
- 十个最常用的JavaScript自定义函数
- javascript十个最常用的自定义函数
- Lodash中十个常用的工具函数
- Lodash中十个常用的工具函数
- 虚电路网络与数据报网络
- 归并排序
- Spring5源码解析-Spring框架中的事件和监听器
- bind(),call(),apply()区别
- [BZOJ]4336: BJOI2015 骑士的旅行 树链剖分+STL(multiset)
- 函数十个问答
- 签名-代码混淆Progurard-反编译
- UGUI +ScrollRect下实现动态添加grid子物体
- MySQL学习笔记(一):修改MySQL中的提示符
- ubuntu 17.10 常用软件安装
- 利用时间序列预测用户系统是否过载
- hbase常用命令
- Android5.0 显示系统(二)————SurfaceComposerClient
- JTA 分布式事务