在C 语言程序中,是通过对函数的调用来执行函数体,其过程与子程序调用相似。在调用函数时,大多数情况下主调函数和被调函数之间有数据传递。图5.2程序运行结果函数调用在程序中起一个表达式或者语句的作用。在调用函数时,有3 种不同的方式。这就要求该函数必须是有返回值的。getchar 函数调用作为表达式使用,即赋值表达式的右操作。......
2023-10-21
1.函数调用形式
函数调用的一般形式为:
函数名(实参列表);
如果是调用无参函数,则“实参列表”可以省略,但括号一定不能省略。如果“实参列表”包含多个参数,则各参数间用逗号隔开,实参与形参按顺序一一对应,实参与形参的个数相等,类型一致。
2.函数调用的方式
按函数在程序中出现的位置来分,函数的调用方式大致有如下三种:
(1)函数语句。此时把函数调用作为一个语句,不要求函数带回返回值,只要求函数完成一定的操作。例如:
print_message();
(2)函数表达式。此时函数出现在一个表达式中,要求函数带回一个确定的返回值以参加表达式运算。例如:
y=square(x);
(3)函数参数。此时,函数调用作为另一个函数的实参。例如:
litter=min(x,min(y,z));(www.chuimin.cn)
其中min(y,z)是一次函数调用,它的值作为函数min()另一次调用的实参。
3.对被调用函数的声明和函数原型
在一个函数中调用另一个函数(即被调用函数)需要具备如下条件:
(1)首先被调用的函数必须是已经存在的函数(库函数或用户自定义的函数)。
(2)如果是调用库函数,一般还应该在程序开头用#include命令将所需用到的信息“包含”到本文件中。
(3)如果使用用户自己定义的函数,则最好是在主函数中对被调用函数进行声明,即向编译系统声明将要调用此函数,并将相关信息通知编译系统(如例5.2中以函数原型声明power()函数)。
(4)函数的“声明”与函数的“定义”不是一回事。函数的“定义”是指对函数功能的确立,包括指定函数名、函数值类型、形参及其类型、函数体等,它是一个完整的、独立的函数单位。而函数的“声明”则是将函数的名字、函数类型、形参的类型及个数、顺序通知编译系统,以便在调用该函数时系统按此进行对照检查(如函数名是否正确、实参和形参类型及个数是否一致)。从形式上看,函数的声明与函数定义中的第1行(函数首部)基本相同,所以在函数声明时,可以将函数定义的首部照写一遍再加一个分号即可。
在C语言中,以函数首部声明函数的形式称为函数原型。使用函数原型是C语言的一个重要特征,主要作用是利用它在程序的编译阶段对调用函数的合法性进行全面检查。函数原型的一般形式为:
①函数类型 函数名(参数类型1,参数类型2……)
②函数类型 函数名(参数类型1参数名1,参数类型2参数名2……)
第①种形式是基本形式,为了便于阅读程序,也允许在函数原型中增加参数名,也就是第②种形式。但是,编译系统不检查参数名,因此参数名加与不加都不太重要。
有关C语言程序设计 第2版的文章
在C 语言程序中,是通过对函数的调用来执行函数体,其过程与子程序调用相似。在调用函数时,大多数情况下主调函数和被调函数之间有数据传递。图5.2程序运行结果函数调用在程序中起一个表达式或者语句的作用。在调用函数时,有3 种不同的方式。这就要求该函数必须是有返回值的。getchar 函数调用作为表达式使用,即赋值表达式的右操作。......
2023-10-21
项目2:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。图3.15兔子问题输出结果根据以上的分析可以知道,循环次数可以为0,因此该程序是一个条件型循环,可以利用while语句编写程序。熟悉了循环结构在程序设计中的运用,循环结构语句包含了while语句、do…......
2023-11-18
图5.7两层函数嵌套调用示意图函数的嵌套调用即一个函数在被调用的过程中又调用了另外的一个函数。函数fac和powers的返回值类型均被设计为double型,其主要目的是为了避免n!x:0.5//0.5从键盘输入的数据0.50 powers of e=1.648721//程序执行结果......
2023-11-20
C语言把括号、赋值、强制类型转换等都作为运算符处理,灵活使用各种运算符可以实现在其他高级语言中难以实现的运算,功能强大。另外,C语言还把括号、下标、强制类型转换、取地址等都作为运算符处理,并通过与算数运算符的组合达到不同的目的,从而使程序更加简洁明了。C语言具有超强的可移植性。总之,C语言在运算符方面是比较容易让人混淆的。......
2023-11-18
C语言中逻辑运算符及其含义见表3.2。表3.2逻辑运算符及其含义逻辑运算符“&&”和“||”是双目运算符,具有左结合性;“!”表3.3逻辑运算真值表C语言中进行逻辑表达式求值运算时,不但要注意逻辑运算符本身的运算规则,而且还必须要遵循下面的两条原则:·对逻辑表达式从左到右进行求解。......
2023-11-20
单分支if语句的执行过程如图3.3所示。使用if语句实现单分支选择结构程序时还需要注意下面两点:图3.3if语句的执行流程①作为条件的表达式一般来说应该是关系表达式或逻辑表达式,但C语言中允许表达式是任何可以求出0值或非0值的表达式。同时还需要提醒读者,此处分析的关于条件表达的方法在C程序设计的所有控制结构中都是相同的,今后涉及此问题时不再赘述。......
2023-11-20
void类型指针中的数据不能访问,如果非要访问的话,可以通过强制转换将void类型指针转换为与所指向的数据类型相符的类型。所谓“相同存储对齐限制”是指void类型指针所指的数据在内存中所占的长度与显式转换后的指针所指的数据在内存中所占的长度相等。同理,如果是将void类型转换为具有更小存储对齐限制的指针时,也可能引起数值的改变。......
2023-11-18
C语言的最大特点是:功能强、使用方便灵活。由于这个“灵活”给程序的调试带来了许多不便,尤其对初学C语言的人来说,经常会出一些连自己都不知道错在哪里的错误。在C语言中大写字母和小写字母是两个不同的字符。C语言规定以’\0’作字符串结束标志,它是由系统自动加上的。当一个语句中使用多层括弧时常出现这类错误。main()C语言中对数组的定义或引用数组元素时必须用方括弧。......
2023-11-18
相关推荐