VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

有编程疑问吗?还请到提问专区发帖提问!
搜索
查看: 4956|回复: 116

《实用C++》第16课 函数简介

  [复制链接]
51_avatar_middle
online_admins Syc 发表于 2017-11-29 01:17:55 | 显示全部楼层 |阅读模式
《实用C++》第16课 函数简介《实用C++》第16课 函数简介

1、什么是函数?
咱们先看看函数的原英文意思,function,翻译过来就是功能的意思,所以函数也就是功能。也就是说一个函数肯定会实现或者完成某个功能,所以大家以后对函数起名字的时候最好起一个能表达该函数功能的名字。所以一个程序可能会包含多个函数来实现多个功能。编写程序的过程也可以简单理解为写N多个函数的过程。

2、为什么要有函数?
①、每个程序都必须至少有一个函数,咱们之前的 HelloWorld 程序就有一个主入口函数 main 对吧?大家也都看到了。
②、我们之前的代码相对来说比较简单,所以都写在了 main 函数中,如果程序的功能以后越来越多,那么就不可能把所有的代码都写到main函数中,这时候就可以按照功能来写一个一个的函数了,之后调用。
③、如果程序的功能很多,比如在公司的项目中,由多个人来共同完成一个项目,那么就可以把这个项目拆分开,每个人负责几个功能函数,写好了之后再组合到一块,方便协同开发。

等等吧,可能还有很多其他的原因。总之函数在编程开发的过程中是一定要学会的,不仅 C/C++ 语言中有,其他各种各样的语言中几乎都有函数,也都需要开发人员去编写函数。

3、函数的分类:系统函数、用户自己定义的函数
系统函数是编译器提供好的C/C++的标准库函数,例如:printf、malloc、free、sqrt 等等。
用户自己定义的函数是指在实际的软件开发过程中,用户根据自己的情况,将部分功能封装成一个函数,供其他地方调用。

4、定义函数的形式:
返回类型 函数名(形式参数表列)
{
    声明部分;
    执行语句;
}

例如:
  1. void print_msg() //没有参数,没有返回值
  2. {
  3.     cout<<"hello world." << endl;
  4. }

  5. int add(int x, int y) //有两个参数,有返回值
  6. {
  7.     return x+y;
  8. }
复制代码


5、函数的简单调用:
  1. #include <iostream>
  2. using namespace std;

  3. int add(int x, int y)
  4. {
  5.         return x + y;
  6. }

  7. int main()
  8. {
  9.         int sum = add(2,5);
  10.         cout << "sum = " << sum << endl;
  11.         return 0;
  12. }
复制代码


6、形参与实参:
在上面的例子中 add 函数的参数 int x, int y 就是形式参数,简称形参,又叫虚拟参数,因为函数调用之前他们并没有申请任何内存;
而在调用 add 函数的实际参数 2 和 5 就是实际参数;
形参大家可以理解为是一个模具,你给我传什么我就用什么。实参可以理解为往模具里面添加的真实东西;
实参可以是常量、变量,也可以表达式,例如:
  1. int a = 5, b = 6;
  2. int sum = add(2, a*b);
复制代码


注意①:调用函数时实参应尽量与形参的类型一致,或可进行相应的转化,如果转化不了则编译器就会报错!
例如:
  1. int sum = add(2.5, 3.62); //是可以的
  2. char c = 2;
  3. int sum = add(2.2, c); //也是可以的
  4. int sum = add(2.2, "abc"); //不可以
复制代码

编译器没办法把字符串 "abc" 转成数值类型的整型!

注意②:实参对形参的数据传递是以“值传递”的方式进行传递的。单向的,只能由实参传递给形参,不能由形参传递给形参。
举个例子:
  1. #include <iostream>
  2. using namespace std;

  3. int add(int x, int y)
  4. {
  5.         x = 3;
  6.         y = 8;
  7.         return x + y;
  8. }

  9. int main()
  10. {
  11.         int a = 2, b = 5;
  12.         int sum = add(a, b);
  13.         cout << "sum = " << sum << endl;
  14.         cout << "a = " << a << endl;
  15.         cout << "b = " << b << endl;
  16.         return 0;
  17. }
复制代码


相关细节分析详见视频教程讲解!

第16课免费试看,下载地址(回复后可见):
游客,如果您要查看本帖隐藏内容请回复

#######################################################
获得所有教学视频、课件、源代码以及售后答疑详见:
《实用C++》:https://www.cctry.com/thread-275996-1-1.html
VC驿站官方客服QQ:8260671

#######################################################
《实用C++》第16课 函数简介《实用C++》第16课 函数简介




上一篇:《实用C++》第15课 期中知识总结
下一篇:《实用C++》第17课 函数的返回值及几种调用方式

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

78_avatar_middle
在线会员 csa 发表于 2017-11-29 09:32:22 | 显示全部楼层
又出新课啦,谢谢。

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

65_avatar_middle
在线会员 ping170 发表于 2017-11-29 17:01:01 | 显示全部楼层
太棒啦,可以好好学习,谢谢楼主

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

22_avatar_middle
在线会员 supersct 发表于 2017-11-29 19:57:31 | 显示全部楼层
谢谢分享

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

74_avatar_middle
online_vip08 wssfcn 发表于 2017-11-30 10:47:07 | 显示全部楼层
谢谢分享                    

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

46_avatar_middle
在线会员 fymbl 发表于 2017-12-1 19:21:35 | 显示全部楼层
看看。。。。。

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

75_avatar_middle
在线会员 besteast 发表于 2017-12-2 12:32:11 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

75_avatar_middle
在线会员 jerichoyin 发表于 2017-12-3 02:54:01 | 显示全部楼层
谢谢分享      

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

98_avatar_middle
在线会员 tomok 发表于 2017-12-3 09:59:05 | 显示全部楼层
谢谢分享

学习 了

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

67_avatar_middle
在线会员 一只小鱼 发表于 2017-12-21 11:05:48 | 显示全部楼层
谢谢分享

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

55_avatar_middle
在线会员 Smallbee 发表于 2017-12-21 17:16:38 | 显示全部楼层
好好学习, 天天身上

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

10_avatar_middle
在线会员 foftiancai 发表于 2018-1-13 13:59:28 | 显示全部楼层
感谢楼主分享

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

80_avatar_middle
在线会员 zp521 发表于 2018-1-13 15:16:22 | 显示全部楼层
视频讲解终于出来了!

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

48_avatar_middle
在线会员 aft338888 发表于 2018-1-13 15:37:33 | 显示全部楼层
可以好好学习,谢谢楼主

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

63_avatar_middle
在线会员 hongzi001 发表于 2018-1-16 14:11:05 | 显示全部楼层
我是来学习的。

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

11_avatar_middle
在线会员 can 发表于 2018-1-16 19:58:00 | 显示全部楼层
cdcdscdscdsc

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

05_avatar_middle
在线会员 625136403 发表于 2018-1-17 03:16:56 | 显示全部楼层
好好学习

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

94_avatar_middle
online_vip tkler 发表于 2018-1-18 13:06:14 | 显示全部楼层
好好好好好好好好

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

38_avatar_middle
在线会员 maixiu 发表于 2018-1-20 21:07:17 | 显示全部楼层
《实用C++》第16课 函数简介谢谢老大

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

49_avatar_middle
在线会员 yuanpinq 发表于 2018-1-21 18:31:07 | 显示全部楼层
函数来了

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /1 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2018-11-19 22:35

Powered by Discuz! X3.4

© 2009-2018 cctry.com

快速回复 返回顶部 返回列表