当前位置:首页 >> 工学 >>

C语言函数入门-讲义(原创)


4.1 函数入门
函数的作用。 函数体现了 C 语言面向过程的模块化 模块化思想,具体作用是: 模块化 1、使用函数使程序结构清晰; 2、函数可复用,也可以反复调用; 例 1:两个程序的对比 1) #include<stdio.h> void main() { printf("****************************************\n\n"); printf(" Hello world!\n\n"); printf("****************************************\n\n"); } 2) #include<stdio.h> void f() { printf("****************************************\n\n"); } void g() { printf(" } void main() { f(); g(); f(); }

Hello world!\n\n");

函数必须先定义或声明,才能调用。 函数定义格式: 数名(形参表 形参表) //函数头 返回值类型 函数名 形参表 函数头 { //函数体 函数体 声明部分 语句 } 形参表可以是 0 个、1 个或多个参数。

注意形参表的格式: 形参变量, 数据类型 形参变量 …… 函数不返回值时,返回值类型是 void。 形参的本质是局部变量,形参只有在函数内部有效。当函数调用时,才为其 申请内存空间,函数调用时便释放内存空间,main 函数也不例外,所谓释放即 返还给操作系统。 一个程序有且只有一个 main 函数。

4.2 函数调用
调用格式如下 函数名(实参表 实参表) 函数名 实参表 以上格式,是不带分号的,意味着,函数调用本质是表达式 表达式,既然函数调用 表达式 是表达式,那么其使用方法同表达式 那么其使用方法同表达式。 那么其使用方法同表达式 此时函数有没有返回值已无关紧要,若有返回值,则函数调用表达式便可放 在赋值表达式的右边。 例 2: #include<stdio.h> int add(int a,int b) { int c; c=a+b; return c; } void main() { int a,b,c; printf("input two numbers:\n"); scanf("%d%d",&a,&b); c=add(a,b); printf("%d+%d=%d\n",a,b,c); } 形参是变量,但实参可以是类型匹配的任意表达式。 实参与形参的个数、类型都要匹配。 形参与实参同名与否无任何关系。 例 3: #include<stdio.h> int Add(int a,int b) { int c; c=a+b;

return c; } int Jia(int bb) { int c; c=100+bb; return c; } void main() { int a,b,c1,c2; printf("input two numbers:\n"); scanf("%d%d",&a,&b); c1=Add(a,100.1); printf("%d+100=%d\n",a,c1); c2=Jia(b); printf("100+%d=%d\n",b,c2); } 函数调用时,编译系统做了些什么事? 函数调用时,编译系统做了些什么事? 1、执行流程,从主调函数的该函数调用语句转移到被调函数,即转去执行 被调函数。 按值传递,即实参的值赋 2、参数传递,即实参按顺序传递给形参。而且是按值传递 按值传递 值给形参。 3、形参得到实参的值后,便开始执行被调函数的函数体。 4、被调函数执行完后,便返回到主调函数原来的地方,继续执行主调函数 剩下的部分。若有返回值,返回即可。 函数如何结束呢? 函数如何结束呢? 1、若函数无返回值,便不必有 return 语句,此时,函数要执行到函数体最 后一个语句,便可自然返回。 2、若函数无返回值,也可以使用 return 语句结束执行,此时可以根据需要 结合 if 语句来达到提前返回的目的。 3、若函数有返回值,则必须使用 return 语句返回一个值并随即结束函数。 小结: 小结: 函数体无 return 语句,便是自然返回;反之,一旦执行到 return 语句便立刻 返回, 此时可结合 if 等语句, 设置多个 return 语句以到达按指定要求返回的目的。 例 4: #include<stdio.h> void Work() { char c;

printf("Start to work:......\n"); printf("Are you tired?\n"); scanf("%c",&c); if('Y'==c || 'y'==c) { printf("You go home and take a rest.\n"); return; } printf("OK,proceed with your work.\n"); printf("End of job!\n"); } void main() { Work(); } 按值传递意味着是单向传递 单向传递,即形参在被调函数中发生改变不会影响实参的 单向传递 值。 被调函数的声明和函数原型 如果被调函数的定义在主调函数的后面,便要事先将被调函数声明。 声明的格式如下: 函数原型 原型; 函数原型; 函数原型是函数头的基础上省略具体的形参变量,而只有形参类型,也可以 不省略,当不省略时,函数原型就是函数头。 从格式中看到,声明中以分号结尾,意味着声明是一个语句 意味着声明是一个语句。 意味着声明是一个语句 #include<stdio.h> void main() { int n; printf("input number\n"); scanf("%d",&n); s(n); printf("n=%d\n",n); } int s(int n) { int i; for(i=n-1;i>=1;i--) n=n+i; printf("n=%d\n",n); } 关于执行流程的转移,可演示设置断点的调试过程。

函数的实参是表达式,而函数调用就是表达式,那么函数调用表达式亦可做 另一个函数调用的实参,此时的情况,与数学中的复合函数是相似的。当然,函 数调用表达式做表达式,要求函数调用必须有返回值。


相关文章:
C语言函数入门-讲义(原创).doc
C语言函数入门-讲义(原创) - 4.1 函数入门 函数的作用。 函数体现了 C
C语言函数入门 讲义(原创).pdf
C语言函数入门 讲义(原创) - 4.1 函数入门 函数的作用。 函数体现了 C
C语言函数课件_图文.ppt
C语言函数课件_工学_高等教育_教育专区。模块化程序设计函数孙小松 1 C语
C语言函数部分课件_图文.ppt
C语言函数部分课件_电脑基础知识_IT/计算机_专业资料C语言函数部分课件
第1章C语言函数课件_图文.ppt
第1章C语言函数课件_工学_高等教育_教育专区。大学C语言课件 第九章函数 第一...1/49 02:00 C 程序设计基础教程 第九章函数 1.0 概述模块化程序设计 ? ...
C语言课件(函数)_图文.ppt
C语言课件(函数)_理学_高等教育_教育专区。 C语言程序设计 函数程序的模块化 函数定义 原型 调用 参数传递 函数的嵌套调用 递归函数 程序设计举例 函数 简介分而...
C语言函数课件_图文.ppt
C语言函数课件_IT/计算机_专业资料。C语言 程序设计 第7章 函数 第7章
C语言函数的定义与使用.doc
C语言函数的定义与使用 - 讲义十三 C 语言函数的定义与使用 一、函数的定义:
C语言函数的定义与使用.doc
C语言函数的定义与使用 - 讲义十三 C 语言函数的定义与使用 一、函数的定义:
计算机技术基础-c语言讲义-4_图文.ppt
计算机技术基础-c语言讲义-4_IT认证_资格考试/认证_教育专区。用于C语言入门级学习 8.函数 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 举例: main() { int...
浅谈C语言中函数入门的讲解_论文.pdf
浅谈C语言函数入门的讲解 - 本文探讨了C语言中函数的讲解内容及讲解方法,提出了提高C语言教学质量一些建议和方法。
C语言函数课件_图文.ppt
C语言函数课件_工学_高等教育_教育专区。C语言的函数课件 §8-1 C程序模块
C语言入门教程12(函数递归).doc
C语言入门教程12(函数递归)_计算机软件及应用_IT/计算机_专业资料。一、栈 在说函数递归的时候,顺便说一下栈的概念。 栈是一个后进先出的压入(push)和弹出(...
C语言基础知识归纳.pdf
C语言基础知识归纳 - C 语言基础知识 1. 每个 C 程序有且只有一个主函数 main(), 且程序必须从 main() 函数开始执行,并在 main()函数中结束。 2. 在 C...
C语言入门经典(第四版)9-函数再探.txt
C语言入门经典(第四版)9-函数再探 - ppt文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 C入门经典(第4版) 入门经典( 第09章 ...
C语言入门文档_图文.ppt
C语言入门文档 - 04 Function (函数) Structure: C
C语言入门知识.txt
C语言入门知识 - 以下叙述中错误的是( )。 A)C语言中的每条可执行语句和非
...信息学奥赛C语言第一章 C语言基础知识课件_图文.ppt
高中信息技术 信息学奥赛C语言第一章 C语言基础知识课件_其它课程_高中教育_...() 函数(又称主函数)和若干个其它函数结合而成 的,或仅由一个main()函数...
第2章_C语言快速入门-5(函数周)_图文.ppt
第2章_C语言快速入门-5(函数周) - 第3章 程序控制结构 2.9 函数的定义与使用 函数(function)是结构设计的最基本单位 “一个程序应该是轻灵自由的,它的子...
C语言入门教程 (十一) 函数参数的传递和值返回.txt
C语言入门教程 (十一) 函数参数的传递和值返回_电脑基础知识_IT/计算机_专业资料C语言入门教程 (十一) 函数参数的传递和值返回 前面我们说的都是无参数无...
更多相关标签: