ask函数有几个形式参数HTML,第七章 函数
函数
关于模块化编程(C语言的程序模块称为函数),我们需要注意的几点。
1,没有子函数的概念。函数之间都是并列的关系,不能把一个函数定义到另一个函数的函数体中。
2,当定义在下面的函数,而上面代码已经调用了,此时需要函数原型的声明。如果函数定义在上面,而使用在下面,可以不用函数原型声明。
3,函数的返回值类型就是告诉编译器函数运算完成后,返回值的数据类型,当调用函数时,就可以定义相应类型的变量来接收函数的返回值了。当函数被调用时,形参比照类型,开辟空间用来接收实参的值。函数内部定义的变量叫做局部变量。是保存程序中间运算结果的。
4,每个函数都是独立的,在内存中,函数调时都会开辟一个栈帧,在一个函数体中,不能直接使用另外一个函数体中定义的变量,如果想要用到其它函数内定义的局部变量,只能用到参数传递。函数调用时产生栈帧,函数调用结束后,栈帧内存将释放(也就是所有的形参和局部变量分配的空间将全部释放)。
5,按数目一致,类型相同,顺序相同这样的原则进行函数调用,进行实参和形参的结合,正确的结合是函数调用的关键。
一、函数概述
函数定义:函数头+函数体
函数头: 说明函数的类型、名字、参数及参数的类型。如: int max( int x, int y )
函数体: 由“{ }”括起,包括变量声明和执行部分
分类: 标准库函数和用户定义的函数。
说明:(1)一个C程序可由一个主函数和若干个其他函数组成
(2) 程序执行时从main函数开始, 根据需要, main函数调用其他函数, 其他函数也可以互相调用。
(3)同一个函数可以被一个或多个函数调用任意多次。最后由main函数结束程序的运行。
(4)不能调用main函数
举例:用上面的设计原则,重新实现pmp程序,大于35 输出你好成熟,小于35 ,输出你好年轻。
#include
void welcome();//因为C语言是先声明再使用的语言,所以对函数原型先声明一下。
int ask();
void pmp(int age);
void main()
{
int age = 0;
welcome(); //函数调用,一串字母后面跟着小括号,然后还一个分号,我可以基本判断出来它是函数调用。
age = ask(); //询问年龄,需要得到年纪值,那么我需要定义个一个变量,保留这个值。
//ask()也是一个函数调用,它是把ask()返回的值赋值给age。
pmp(age); //小括号里面是实际参数(实参),函数调用。
}
void welcome() //因为welcome,就是一个欢迎而已,所以我定义一个无参数,无返回值这样的函数原型。
{
printf("欢迎来蚂蚁软件学习\n");
printf("今天天气太好了。\n");
}
int ask() //因为 ask(),实现问询年纪的功能,所以不需要提供参数,所以根据需求来讲,就应该设计成无参数。
//但需要问出来年纪值,所以函数可以设计一个带返回值的函数原型。
{
int age = 0;//函数内部定义的变量叫做局部变量。是保存程序中间运算结果的。
printf("您今年多大了?\n"); //因为每个函数都是独立的,在内存中,函数调用后都会开辟一个栈帧,所以此处age
scanf("%d",&age); //和main 函数的age,是两个不同的存储单元,只是名字相同而已。
return age //在一个函数体中,不能直接只用另外一个函数体中定义的变量,如果想要用到其它函数
} //内定义的局部变量,需要用到参数传递。
//因为PMP函数,根据需求来讲,对于这个函数来讲,肯定需要一个年纪值,我才可以拍。所以,就需要设计
//一个形式参数了,返回值就是void,形式参数干什么用的呢?当函数被调用时,形参比照类型,开辟空间用来
//接收实参的值。
void pmp(int age)
{
if(age > 35) //形参的这个AGE可以取任何名字都可以,他仅仅是形参分配空间的名字而已。
{
printf("您好成熟啊"); //它属于被调用函数的变量。所以此处的AGE和main函数里面的AGE,是不同的内存块。
}
else //这里仅仅名字相同而已。你也可以取不同的名字。
{
printf("您好年轻啊");
}
}
二、函数返回值
格式: return ( 表达式 ); return 表达式 ;
作用: 将表达式的值返回给调用函数 结束被调用函数的执行, 并把程序的控制返回到调用它的函数。
注意:(1)函数的返回值的类型应与函数的类型一致。如不一致, 以函数类型为准, 对返回值进行类型转换, 然后传送给调用函数。
(2)一个函数可以有多个return语句, 但只可能执行其中一个。
三 函数参数
正确地进行结合是函数调用的关键。结合时应注意: 实参与形参的个数相等, 顺序一致, 类型应相同。
1、实参与形参结合的原则是:
当实参为常量、变量、表达式或数组元素时,对应的形参只能是变量名。
当实参为数组名时, 所对应的形参必须是同类型的数组名或指针变量。
2、数组名作为函数参数
实参与形参之间的数据传递是地址传递。
可用多维数组名作实参和形参。在被调用函数中对形参数组定义时, 可以指定每一维的长度,也可省略第一维的长度。
四、函数原型
用户自定义函数在调用前, 必须对该函数进行声明。函数声明就是函数原型
返回值类型:决定函数运行的结果 接收数据时 数据类型要一致
函数名:功能
参数个数及类型
所有的数学库中的函数 返回值类型都是double,也可以传入整型 用整型变量接收结果
标签:函数,形参,age,函数调用,第七章,返回值,定义
来源: https://www.cnblogs.com/hyt19911004/p/12392412.html
ask函数有几个形式参数HTML,第七章 函数相关推荐
- c语言程序设计函数6,C语言程序设计》第6章函数-XiamenUniversity.PDF
厦门大学非计算机专业本科生公共课 (2012-2013第2学期) <C语言程序设计> 第6章 函数 林子雨 厦门大学计算机科学系 E-mail: ziyulin@ 个人主页:/linziy ...
- c语言第七章函数笔记,我的C语学习笔记-C语言教程(七).doc
我的C语学习笔记- C语言教程(七) C语言教程---第一章: C语言概论 C语言教程---第二章: 数据类型.运算符.表达式 C语言教程---第三章: C语言程序设计初步 C语言教程---第四章: ...
- c语言第七章函数实验总结,第六章 实验报告 (函数与宏定义)
c语言实验报告 实验项目: 1.编写由三角形三边求面积的函数 2.编写求N的阶层 3.求两个整数的最大公约数 4.打印输出的指定图形 5.模块化程序设计 姓名:张顺利实验地点:第一教学楼514教室 ...
- C++学习之路(六),C++primer plus 第七章 函数--C++的编程模块
第 7 章 函数---C++的编程模块 本章内容包括: 函数基本知识. 函数原型. 按值传递函数参数. 设计处理数组的函数. 使用 const 指针参数. 设计处理文本字符串的函数. 设计处理结构的函 ...
- Python3.5从0开始学读书笔记——第七章 函数
调用函数 函数是指用于进行某种计算的一些列语句的有名称的组合.Python3内置了很多有用的函数,可以直接调用. 要调用一个函数,就要知道函数的名称和参数.参加官网帮助文档地址:https://doc ...
- c语言程序设计 第七章函数,《C语言程序设计》第七章随堂练习:自定义函数
题目:创建一个C语言控制台程序,除了main函数外,自定义两个被调用的函数,并要求至少有一个函数包含有参数. 解答: 首先我们要了解,函数包含哪些组成结构,有四个部分,分别是:函数类型.函数名称.函数 ...
- python function at 0x00000_《fluent python》第七章 函数装饰器和闭包
前言 函数装饰器用于在代码中"标记"函数,以某种方式增强函数的行为. 想理解与掌握这一功能必须先理解闭包:除此之外,闭包还是回调式异步编程和函数式编程风格的基础 装饰器 装饰器是可 ...
- c语言第七章函数选择答案,C语言选择题及答案
C语言选择题及答案 21.执行下面的程序后,a的值为( ). main() { int a,b; for(a=1,b=1;a<=10;a++) { if(b%3==l) { b+=3; cont ...
- 【C++ primer】第七章 函数-C++的编程模块
1,函数的基本知识 C++对于返回值的类型有一定的限制:不能是数组,但可以使其他任何类型,甚至可以使结构和对象. 有趣的是,虽然数组不可以作为返回对象,但是数组可以作为结构 ...
最新文章
- APP抓链接工具(Fiddler版)
- 比特币钱包(4) BIP39 助记词
- 数学建模——线性规划模型详解Python代码
- mysql中如何判断某个字段是纯数字
- cuba 平台_CUBA平台:TypeScript SDK和REST API
- 《Python Cookbook 3rd》笔记(1.20):合并多个字典或映射
- css 解析器 java_Java 的 CSS 解析器 jStyleParser
- 从进程组、会话、终端的概念深入理解守护进程
- python离散积分_科学网—python数据处理笔记(三)通道积分图 - 钱磊的博文
- Idea 格式化代码-配置
- 北大医学英语和计算机,医学英语专业本科生张泉同学在SSCI期刊发表论文
- 最新最全的云开发入门教程,微信小程序云开发,云函数,云数据库学习,微信小程序云开发扩展功能学习
- INFO Starting development server...98% after emitting CopyPlugin ERROR Failed to compile with
- C语言和win32绿色鼠标连点器,带代码(Windows)
- 计算机视觉算法——基于Anchor Free的目标检测网络总结
- 9个开源的 Vue3 组件库
- 关于一次美团java程序员招聘面试的经历
- Oracle重申将支持Solaris 11
- 文本编码格式转换及文本内容类型的介绍
- 嵌入式行业的发展前景?
热门文章
- 2022-2028中国等级5Ti-6Al-4V合计市场现状研究分析与发展前景预测报告
- Python爬虫入门教程 63-100 Python字体反爬之一,没办法,这个必须写,反爬第3篇...
- JS判断身份证(15位18位)的合法性
- Ubuntu_部分键盘F1~F12强制为功能键
- Android怎么自定义充电铃声,安卓手机自定义充电提示音教程
- android 视频大小压缩,Android视频压缩(亲测有效)方便简单易用
- 你眼中的罗振宇和罗辑思维?
- Android工程缺少SDK解决方案
- cisco(思科)两个不同网段相连接
- 西门子PLC和变频器控制恒压供水案例一控四