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

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语言入门教程 by shuax原创教程~强烈推荐新手学习.txt
C语言入门教程 by shuax原创教程~强烈推荐新手学习 - 本文由caoch
《c语言从入门到精通》第六章函数_图文.ppt
c语言入门到精通》第六章函数 - 函数 韩都衣舍韩国衣服之家:http://
C语言-程序设计基础(全套课件392P)_图文.ppt
C语言-程序设计基础(全套课件392P) - 1 1. C语言的发展 与计算机对
C语言函数部分课件_图文.ppt
C语言函数部分课件_电脑基础知识_IT/计算机_专业资料。C语言函数部分课件 函
一个判断字符类型及个数的C语言函数.doc
一个判断字符类型及个数的C语言函数 - 6.2 判断字符类型及个数 #include<stdio.h> main() {int zm=0,sz=0,kg=0,qt=0; char c; prin...
浅谈C语言中函数入门的讲解_论文.pdf
浅谈C语言函数入门的讲解 - 本文探讨了C语言中函数的讲解内容及讲解方法,提出了提高C语言教学质量一些建议和方法。
C语言上课讲义.doc
老师自己实用的C语言上课讲义内容详实清晰 第一课 C 语言入门 1.1 什么是 C...3. 4. 5. 使用 scanf 和 printf 函数来为变量进行赋值和输出;并且打印相关...
大学C语言基础自学课件讲义_图文.ppt
大学C语言基础自学课件讲义_营销/活动策划_计划/解决方案_实用文档。第一章 C...开头”, 输出内容); (6) “ {”, “} ”是每一个函数体的开始与结束...
C语言的conio的常用函数.doc
C语言的conio的常用函数 - conio.h 其实是一个控制输出的头文件,其中有几个函数 textbackground(color)函数,是设置文本的背景颜色 clrscr()是清屏函数 g...
C语言入门教程12(函数递归).doc
C语言入门教程12(函数递归)_计算机软件及应用_IT/计算机_专业资料。一、栈 在说函数递归的时候,顺便说一下栈的概念。 栈是一个后进先出的压入(push)和弹出(...
C语言入门基础_图文.ppt
C语言入门基础_理学_高等教育_教育专区。C语音基础课程 第1章 为什么要学 C...C框架、输入输出、 控制流程、函数、数组、指针 作业完成数量和质 量 C框架、...
C语言讲义_图文.ppt
C语言讲义_电脑基础知识_IT/计算机_专业资料。大学c语言讲义,清新,容易掌握,过...8. 3 指针变量作函数参数 作用:将一个变量的地址传至另外一个函数中。 指针...
C语言入门 课件_图文.ppt
C语言入门 课件 - C入门经典(第4版) 入门经典( 第01章 C语言编程 01章 语言编程 C语言是一种功能强大、简洁的计算机语言,通过它可以编写程序,指挥 计算机完成...
高中信息技术 信息学奥赛C语言第一章 C语言基础知识课....ppt
一节 C语言程序的结构 C语言程序的总体结构 一个完整的C语言程序,是由一个 main() 函数(又称主函数)和若干个其它函数结合而成 的,或仅由一个main()函数...
c语言入门课件1.pdf
c语言入门课件1_IT/计算机_专业资料。计算机教程 本文由yjryjqwdms贡献 本文由...(Link)将此.OBJ文件与C语言提 供的各种库函数连接起来生 成一个后缀为.EXE...
c语言入门PPT_图文.ppt
c语言入门PPT - 教育… …无非是学生 将所学知识全部忘掉之后, 所剩下的那点东西。 德物理学家 劳厄 函数的基本知识 1、提高程序的可读性, 便于调试程序。...
C语言入门教程 by shuax原创教程~强烈推荐新手学习.txt
C语言入门教程 by shuax原创教程~强烈推荐新手学习 - 本文由caoch
西安野马-C语言第8章讲义_图文.ppt
西安野马-C语言第8章讲义 - 程序设计基础 C语言 程序设计基础 第8章 函数 主要内容 8.1 函数概述 8.2 函数定义 要点: 8.3 函数参数和函数的值 ?函数定义 ...
c语言函数实现查找两个字符串中最大的子字符串.doc
c语言函数实现查找两个字符串中最大的子字符串_电脑基础知识_IT/计算机_专业资
更多相关标签: