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

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语言入门教程 by shuax原创教程~强烈推荐新手学习.txt
C语言入门教程 by shuax原创教程~强烈推荐新手学习_自然科学_专业资料。攻心策略...这个文件是包含标准 IO 的库函数(例如下面的 printf、getchar 函数)的头文件。...
C语言函数部分课件_图文.ppt
C语言函数部分课件_电脑基础知识_IT/计算机_专业资料C语言函数部分课件
C语言课件(函数)_图文.ppt
C语言课件(函数)_理学_高等教育_教育专区。 C语言程序设计 函数程序的模块化 函数定义 原型 调用 参数传递 函数的嵌套调用 递归函数 程序设计举例 函数 简介分而...
C语言编程入门教程资料_图文.ppt
C语言编程入门教程资料_互联网_IT/计算机_专业资料...函数类型 函数名 形参 main() int max (int x,...
C语言画图及小动画制作(graphisc.h函数入门).pdf
C语言画图及小动画制作(graphisc.h函数入门) - share your knowledge with the world C 语言 graphics.h 的使用 写此教程的目的是为了...
C语言函数课件_图文.ppt
C语言函数课件_工学_高等教育_教育专区。C语言的函数课件 §8-1 C程序模块
C语言编程入门_图文.ppt
C语言编程入门_计算机软件及应用_IT/计算机_专业资料...3. 不能与C语言的关键字或函数同名。 C语言有...
计算机技术基础-c语言讲义-4_图文.ppt
计算机技术基础-c语言讲义-4_IT认证_资格考试/认证_教育专区。用于C语言入门级学习 8.函数 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 举例: main() { int...
一个判断字符类型及个数的C语言函数.doc
一个判断字符类型及个数的C语言函数 - 6.2 判断字符类型及个数 #include<stdio.h> main() {int zm=0,sz=0,kg=0,qt=0; char c; prin...
C语言入门经典(第四版)9-函数再探.txt
C语言入门经典(第四版)9-函数再探 - ppt文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 C入门经典(第4版) 入门经典( 第09章 ...
1C语言入门_3简单函数_1数学函数.pdf
1C语言入门_3简单函数_1数学函数 - 第 3 章 简单函数 1. 数学函数 在数学中我们用过 sin 和 ln 这样的函数,例如 sin(π/2)=1,ln1=0 等等,在 C ...
C语言入门教程 (十一) 函数参数的传递和值返回.txt
C语言入门教程 (十一) 函数参数的传递和值返回_电脑基础知识_IT/计算机_专业资料C语言入门教程 (十一) 函数参数的传递和值返回 前面我们说的都是无参数无...
...信息学奥赛C语言第一章 C语言基础知识课件_图文.ppt
高中信息技术 信息学奥赛C语言第一章 C语言基础知识课件_其它课程_高中教育_...() 函数(又称主函数)和若干个其它函数结合而成 的,或仅由一个main()函数...
C语言入门教程10(函数参数的传递和值的返回).doc
C语言入门教程10(函数参数的传递和值的返回)_计算机软件及应用_IT/计算机_专业资料。前面我们说的都是无参数无返回值的函数,实际程序中,我们经常使用到带参数有返...
大学C语言基础自学课件_图文.ppt
大学C语言基础自学课件_工学_高等教育_教育专区。第一章 C语言概述 C语言程序...开头”, 输出内容); (6) “ {”, “} ”是每一个函数体的开始与结束...
C语言入门知识.txt
C语言入门知识 - 以下叙述中错误的是( )。 A)C语言中的每条可执行语句和非
C语言程序设计基础知识要点.doc
C语言程序设计基础知识要点_计算机软件及应用_IT/计算机_专业资料。01.C 程序基本结构一、C 语言的特点: 1、C 语言源程序的基本组成单位是函数;一个 C 程序可...
C语言编程入门教程精简版_图文.ppt
C语言编程入门教程精简版_计算机软件及应用_IT/计算机_专业资料C语言程序设计...函数类型 函数名 形参 main() int max (int x,int y) { int a,b,c; ...
更多相关标签: