C 语言学习 第六次作业总结
本次作业,同学们开始学习函数。通过之前和同学们的沟通,似乎同学们在这里遇到的问题比较多。下面,我先帮同学们整理下函数的相关知识点。
什么是函数
首先,需要明确的是,什么是函数。所谓函数,也就是一段有名的代码段。大家可以考虑如下的函数:
void add(int a,int b){
int c = a + b;
}
在之前的学习中,大家当需要使用到两个数字相加这一功能,可能仅仅定义一个变量用于存储相加的值int c = a + b;。
但是在使用中可能会发现,总是需要使用到两个数加和这一“算法”。那么,这一代码块如何能够复用呢。于是,便利用了函数。
但是,在上面的例子中虽然能够计算两个数的和,但是却无法知道它的结果。于是,就需要一个返回值(这仅仅是一种实现的手段)。
add函数变成了下面的样子:
int add (int a,int b){
int c = a + b;
return c; // 最终简化为 return a + b;
}
这样,便能够将计算得到的值传递出来。
上面的例子虽然很简单,但是已经包含了一个函数的所有需要的元素:返回值,函数名,参数,函数体。
函数的范围
之前,有同学问我“老师,return语句是不是代表一个函数的结束”。这里要强调的是,并不是。
C 语言的函数体是被大括号包围的。从{开始到}结束,才是整个函数体的范围。return语句仅仅是跳出函数,
后面的语句不再执行。但是不能因此就说return语句就是函数的结束。
函数返回数组的问题
C 语言本身并不能返回数组。但是可以返回指针(这个概念在后面将会学习到)。通过指针,便能够实现目标需求。
函数传递参数的问题
C 语言是一种强类型的语言。所谓强类型,就是将某一个数据声明为什么类型,在整个生存周期,就是什么数据类型。
除非进行强制类型转换或者是在运行过程中存在隐式类型转换。依旧以上面的add函数为例,传递入的两个参数都是int类型,
则传递的参数,也应该尽量都是int类型。否则可能会出现奇怪的错误。
函数的返回值的作用
虽然在上面的例子中,函数返回值的作用为返回传入的两个参数的加和。但是在实际的开发中,
更多情况下函数的返回值都是用于判断此函数的执行状态,或者是兼具执行状态的检查。另外,
当前写的 main 函数的返回值都习惯性的写为 return 0。
实际上,在 GUI 以及一些其他的程序中,main 函数也会根据运行状态,提供不同的返回值。
虽然 main 函数不能被其他函数调用,但是这个值能够被操作系统捕获。操作系统根据此值,便能够确定程序的运行状态。
作业情况统计

作业抄袭情况
本次作业,看到至少3份作业,代码相同:
https://coding.net/u/gdcs16_410/p/chap5/git/blob/master/C6_2.cpp
https://coding.net/u/gdcs16_418/p/chap5/git/blob/master/C6-2.cpp
https://coding.net/u/gdcs16_419/p/chap6/git/blob/master/C6-2.cpp
C 语言学习 第六次作业总结的更多相关文章
- C语言程序设计第六次作业——循环结构(2)
C语言程序设计第六次作业--循环结构(2) 之前的博客园图片没处理好,对大家说一声抱歉.希望大家能够多多指出我的错误,我来认真修改 ^ - ^ !. (1)改错题 序列求和:输入一个正实数eps,计算 ...
- C语言学习 第七次作业总结
C语言学习 第七次作业总结 数组可以分为数组和多下标数组(在传统的国内C语言书本中,将其称为二/多维数组). 数组名称 在之前的课程中,大家应该都有印象,对于int a这样的定义,会为变量 a 声明一 ...
- Go语言学习笔记六: 循环语句
Go语言学习笔记六: 循环语句 今天学了一个格式化代码的命令:gofmt -w chapter6.go for循环 for循环有3种形式: for init; condition; increment ...
- C语言学习 第八次作业总结
本次作业其实没有新的内容,主要就是复习上一次的一维数组的相关内容.冯老师布置了5道题目,其中涉及到一些比较简单的排序或者是查找的方法.因为数据很少,所以直接使用for循环遍历就可以了. 关于本次作业, ...
- C 语言学习 第12次作业总结
作业总结 本次课堂的内容为字符串相关的几个函数还有结构体. 字符串相关函数 在此之前的课程中,输入主要都是使用scanf这个函数.而在这节课上,冯老师讲解了字符串获取函数gets.在不需要控制符的情况 ...
- C语言学习 第十一次作业总结
作业总结 两次的作业,都是和指针有关.从第一次的作业开始,我就多次让同学们思考这个问题:为什么要用指针,为什么在函数的形参中要使用指针.如果能够想明白这2个问题,那么同学们应该会指针的了解就差不多足够 ...
- C 语言学习 第三次作业总结
本次作业内容: For循环的使用 If判断语句的使用 常用数学运算表达式的使用 数学函数库中几个常见函数的使用及自我实现 将操作代码提交到coding 作业总结: For循环是C语言中一种基本的循环语 ...
- C语言学习第六章
今天开始尝试改变! 今天要学习函数,一个C语言中的重要组成部分. 首先先聊聊为什么要使用函数?随着学习的深入很多人会发现某段的代码重复使用的几率很大,而如果用一次写一次的话很明显的效率就会比较低,如果 ...
- C 语言学习 第五次作业总结
第五次作业,主要学习和复习的是几种循环结构的使用. 在前一次的课堂上,同学们已经学习了分支语句的使用.分支语句和循环语句配合使用,就可以写出更多的,逻辑功能丰富的代码了. 逻辑功能的丰富,也意味着学习 ...
随机推荐
- SQL Server里在文件组间如何移动数据?
平常我不知道被问了几次这样的问题:“SQL Server里在文件组间如何移动数据?“你意识到这个问题:你只有一个主文件组的默认配置,后来围观了“SQL Server里的文件和文件组”后,你知道,有多 ...
- 4.在MVC中使用仓储模式进行增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-using-the-repository-pattern-in-mvc/ 系列目录: ...
- 翻译:使用 ASP.NET MVC 4, EF, Knockoutjs and Bootstrap 设计和开发站点 - 6 - 业务逻辑
Part 3: 设计逻辑层:核心开发 如前所述,我们的解决方案如下所示: 下面我们讨论整个应用的结构,根据应用中不同组件的逻辑相关性,分离到不同的层中,层与层之间的通讯通过或者不通过限制.分层属于架构 ...
- ABP总体介绍
ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程序的新起点, ...
- 在Word中输入数学公式
office官方说明:https://support.office.com/en-us/article/Linear-format-equations-and-Math-AutoCorrect-in- ...
- 记录一次bug解决过程:规范变量名称和mybatis的使用以及代码优化
一.总结 Mybatis中当parameterType为基本数据类型的时候,统一采用_parameter来代替基本数据类型变量. Mybatis中resultMap返回一个对象,resultType返 ...
- java List的排序
List自定义排序 1.第一种方法,就是list中对象实现Comparable接口,重写compareTo接口, 对排序的字段进行比较.2.第二种方法,就是在重载Collections.sort方法. ...
- Quartz框架(第一版)
任务调度 在企业级应用中,经常会制定一些"计划任务",即在某个时间点做某件事情 核心是以时间为关注点,即在一个特定的时间点,系统执行指定的一个操作 任务调度涉及多线程并发.线程池维 ...
- 10分钟写一个markdown编辑器
marked.js Marked是一个Markdown解析引擎. vue.js Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vu ...
- 浅析天猫H5站点
前言 我们做前端开发的时候,很有可能会做一个竞品分析,比如我就做过去哪儿.艺龙.同程等与携程的移动站点竞品分析,竞品分析的目的一般是技术对比,但是更多的是业务对比,知己知彼,百战不殆:我们同时会借鉴. ...