200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > C语言 函数调用方式以及嵌套调用

C语言 函数调用方式以及嵌套调用

时间:2021-11-29 00:30:38

相关推荐

C语言 函数调用方式以及嵌套调用

1、函数调用的一般形式注意严格区分:函数调用 和 函数定义 这两个概念的区别。 一般形式:函数名(实参列表); 说明: a)、若调用的是没有形参的函数,实参列表可以没有,但是括号不能省略;若实参列表包含多个参数,则各个参数之间用逗号分开。对于函数中,如果形参包含多个参数,则也用逗号分开。 b)、实参、形参,个数要相等,类型要一致,按顺序对应,一一传递。2、函数调用的方式按函数调用在程序中出现的位置,由三种函数调用的方式A、把函数作为一个语句; printhello();B、函数出现在一个表达式中,这种表达式称为函数表达式,这个时候要求函数带回一个确定的值以参加表达式的运算。 result =whichmax(13,18) * 100; //调用函数比较两个数的大小,把函数返回的结果再进行运算。C、甚至函数调用可以作为 函数的参数,也就是把函数嗲用作为一个函数的实参。 result =whichmax(13,whichmax(12,19)); //先调用函数比较12,19两个数的大小,把函数返回的结果与13进行比较大小。3、函数声明1、C语言规定,函数使用之前必须先声明函数(函数的定义就相当于函数的声明,函数的声明就是函数自己说明自己) 2、函数声明代码放在最前面所有的函数定义之前(就是头文件的下面 #include<stdio.h>下面),这样就保证了所有的函数可以顺利调用其他函数【函数只要声明过,就可以被其他函数调用】。 3、必须把函数声明放在任何源代码文件的 具体函数之前(一般也就是源代码的开头),才能保证这些具体的函数 调用其他函数时,这些被调用的函数时声明过的函数。函数声明的一般形式类型标识符函数名();//与函数定义的区别就是,把函数定义的大括号变成分号。 说明:只需要把函数定义的第一行拿过来,最后面加上一个分号,然后把整个函数体(包括 {} )都删除,这样就是函数声明。 函数定义 和 函数声明的区别: 1、函数定义有函数体,函数体里面确定了函数要实现的功能; 2、函数声明只是对已经定义的函数进行说明,没有函数体,谁调用这个函数就可以提前使用函数声明提前指明自己的参数类型以及返回值; #include<stdio.h> int addtwoshu(int a, int b); //函数声明放在所有源程序代码(所有函数的)的最前面,头文件后面,就是相当于把函数定义的 {} 变成一个分号即可。 int main() {int result =addtwoshu(3,4); printf("result=%d\n",result); } int addtwoshu(int a, int b) //函数定义{int sum=a+b; return sum; }4、函数嵌套调用注意:函数嵌套定义(在函数中定义另外一个函数)这样是非法的。因为每一个函数都是平行、单独的。 void printhello1() {printf("hello,how are you!\n"); void printhello2() {printf("hello,how are you2!\n");//这样是非法的 } } //单独放在下面定义是可以的 void printhello2() {printf("hello,how are you2!\n"); } C语言中不允许在一个函数中定义另外一个函数(不允许嵌套定义),但是允许函数嵌套调用,也就是说:在调用一个函数的过程中,被调用的函数再去调用第三个函数。。。以此类推,如果有需要可以调用第四个第五个。。。 #include<stdio.h> // 函数声明 void qtfunc1(); void qtfunc2(); void qtfunc3(); int main()//主函数 {qtfunc1(); } // 函数的定义 void qtfunc1() {printf("qtfunc1()开始执行-----\n"); qtfunc2();//函数的嵌套调用printf("qtfunc1()结束执行-----\n"); } void qtfunc2() {printf("qtfunc2()开始执行-----\n"); qtfunc3();// 函数的嵌套调用printf("qtfunc2()结束执行-----\n"); } void qtfunc3() {printf("qtfunc3()开始执行-----\n"); printf("qtfunc3()结束执行-----\n"); } 运行结果:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。