C语言函数三要素是:定义域、值域和对应法则。
一,C语言函数定义域
(1)无参函数定义的一般形式如下:
类型标识符 函数名(){
声明部分
语句
}
其中类型标识符和函数名称为函数头。类型标识符指明了本函数的类型,函数的类型实际上是函数返回值的类型。该类型标识符与前面介绍的各种说明符相同。函数名是由用户定义的标识符,函数名后有一个空括号,其中无参数,但括号不可少。
{}中的内容称为函数体。在函数体中声明部分,是对函数体内部所用到的变量的类型说明。
在很多情况下都不要求无参函数有返回值,此时函数类型符可以写为void。
这里,只把main改为Hello作为函数名,其余不变。Hello函数是一个无参函数,当被其它函数调用时,输出Hello world字符串。
(2)有参函数定义的一般形式
有参函数定义的一般形式如下:
类型标识符 函数名(形式参数表列){
声明部分
语句
}
有参函数比无参函数多了一个内容,即形式参数表列。在形参表中给出的参数称为形式参数,它们可以是各种类型的变量,各参数之间用逗号间隔。在进行函数调用时,主调函数将赋予这些形式参数实际的值。形参既然是变量,必须在形参表中给出形参的类型说明。
例如,定义一个函数,用于求两个数中的大数,可写为:
第一行说明max函数是一个整型函数,其返回的函数值是一个整数。形参为a,b,均为整型量。a,b的具体值是由主调函数在调用时传送过来的。在{}中的函数体内,除形参外没有使用其它变量,因此只有语句而没有声明部分。在max函数体中的return语句是把a(或b)的值作为函数的值返回给主调函数。有返回值函数中至少应有一个return语句。
在C程序中,一个函数的定义可以放在任意位置,既可放在主函数main之前,也可放在main之后。例如:可把max 函数置在main之后,也可以把它放在main之前。修改后的程序如下所示。
二,C语言的值域
函数的值是指函数被调用之后, 执行函数体中的程序段所取得的并返回给主调函数的值。如调用正弦函数取得正弦值,调用例5.1的max函数取得的最大数等。对函数的值(或称函数返回值)有以下一些说明:
1. 函数的值只能通过return语句返回主调函数。return 语句的一般形式为:
return 表达式;
或者为:
return (表达式);
该语句的功能是计算表达式的值,并返回给主调函数。 在函数中允许有多个return语句,但每次调用只能有一个return 语句被执行, 因此只能返回一个函数值。
2. 函数值的类型和函数定义中函数的类型应保持一致。 如果两者不一致,则以函数类型为准,自动进行类型转换。 3. 如函数值为整型,在函数定义时可以省去类型说明。
4. 不返回函数值的函数,可以明确定义为“空类型”, 类型说明符为“void”。如例5.3中函数s并不向主函数返函数值,因此可定义为:
void s(int n)
{ ……
}
三,C语言函数对应法则(C语言函数的调用)
函数调用的一般形式为:
函数名(实参列表);
实参可以是常数、变量、表达式等,多个实参用逗号,分隔。
在C语言中,函数调用的方式有多种,例如:
在函数调用中还应该注意的一个问题是求值顺序的问题。所谓求值顺序是指对实参列表中各个参数是自左向右使用呢,还是自右向左使用。对此,各系统的规定不一定相同。
【示例】在VC6.0下运行以下代码。
运行结果:
8 7 6 7
可见VC 6.0是按照从右至左的顺序求值。如果按照从左至右求值,结果应为:
9 10 9 8
函数的嵌套调用
函数不能嵌套定义,但可以嵌套调用,也就是在一个函数的定义中出现对另一个函数的调用。这样就出现了函数的嵌套调用,即在被调函数中又调用其它函数。
【示例】计算sum = 1! + 2! + 3! + ... + (n-1)! + n!
分析:可以编写两个函数,一个用来计算阶乘,一个用来计算累加的和。
运行结果:
1!+2!+...+9!+10! = 1215752192
函数声明和函数原型
C语言代码由上到下依次执行,函数定义要出现在函数调用之前。
但是,如果在函数调用前进行了函数声明,那么函数定义就可以出现在任何地方了,甚至是其他文件。
函数声明的一般形式为:
返回值类型 函数名( 类型 形参, 类型 形参… );
或为:
返回值类型 函数名( 类型, 类型…);
函数声明给出了函数名、返回值类型、参数列表(参数类型)等与该函数有关的信息,称为函数原型。
函数原型的作用是告诉编译器与该函数有关的信息,让编译器知道函数的存在,以及存在的形式,即使函数暂时没有定义,也不会出错。
更改上面的代码,将 factorial 和 sum 函数的定义放到 main 函数后面:
运行结果:
1!+2!+...+9!+10! = 1215752192
C语言函数三要素是什么
C语言函数三要素是:定义域、值域和对应法则。一,C语言函数定义域 (1)无参函数定义的一般形式如下:类型标识符 函数名(){ 声明部分 语句 } 其中类型标识符和函数名称为函数头。类型标识符指明了本函数的类型,函数的类型实际上是函数返回值的类型。该类型标识符与前面介绍的各种说明符相同。函数名...
C的自定义函数要注意什么
各种语言里面的函数其实和数学里面的函数道理是一样的,数学里的函数有三要素:定义域、值域、对应法则,这里的定义域就是对参数取值的一个限制,值域就是返回值的限制,对应法则就是函数的内部实现。另外对于c语言的函数,最好需要再注意一下一下几点:1、函数名要按照标准命名,让人好理解;2、函数里...
如何用c语言编程求两点距离之和
此题考察自定义函数,代码如下:int MinCommonMultiple(int a, int b){ int i;if (a<=0 || b<=0)return -1; \/\/ 保证输入的参数为正整数 for (i=1; i
C语言知识总结
c程序总是从main( )函数开始执行一个c程序可以包含一个主函数,即main()函数;也可以包含一个main()函数和若干其它函数1.3、 c程序的结构函数与主函数程序由一个或多个函数组成必须有一个且只能有一个主函数main()程序执行从main开始,在main中结束,其他函数通过嵌套调用得以执行程序语句C程序由语句组成用“;”作为...
函数的概念,什么是函数
详情请查看视频回答
c语言变量的三要素
C语言变量的内涵包括3个要素:变量的类型、变量的值和变量的地址。“变量的值”保存在内存的某个地方,如同使用门牌号确定地址一样,在内存中也给变量分配门牌号。在C的内存世界中,门牌号被称为变量的地址。即从变量中取值就是通过变量名找到相应的存储地址,然后读取该存储单元中的值,而写一个变量就...
function-prototype?
你自己再检查一遍拼稿带写。C语言是区分大小写的!判敬塌 missingfunction-prototype怎么解决Write_DS1302Init和Run_DS1302这两个函数在使用前没有液孙声明,或者缺失。缺失的请添加,没声明的按下列方法:解决方法1:将这两个函数的代码放到voidmain()上面去 解决方法2:在voidmain()上面添加这两个...
函数是什么
详情请查看视频回答
C语言2级都考什么啊
5.c程序的基本构成结构(由函数构成,函数由基本结构构成)三、顺序结构 1.printf的格式控制串中的格式控制字符和后面的数据在数量上要一一对应,类型要匹配 2.scanf的格式控制串中不要有多余字符,后面的数据是地址,如果是变量,前面要有&(取地址符)3.两个%代表一个 4.复合语句以及空语句 四、选择...
计算机二级证对以后就业作用大吗
看你做什么需要和以后的发展了。如果要是进公司应聘啊。工作啊。其实公司是要求有这个证的。如果自己创业啊什么的那倒是没有什么作用 计算机二级就是考一个等级资格证书,不是很难.只要自己用心看书就可以了,但是自己如果不用心看书的话,那谁都不知道怎么回答你了,一般分为笔试和机考,很多人都是挂在机...