`
linleizi
  • 浏览: 227564 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

C++函数学习笔记三

阅读更多
函数是一个可以从程序其他地方调用执行的语句块。
"函数格式:type name (argument1, argument2, ……) statement
type 是函数返回的数据的类型
name 是函数被调用时使用的名
argument 是函数调用需要传入的参量(可以声明任意多个参量),参量仅在函数范围内有效
statement 是函数的内容。例一:
#include <iostream.h>
int addition (int a, int b) {
  int r;
  r = a +b;
  return (r);
}
int main () {
  int z;
  z = addition (5, 3);
  cout << ""The result is "" << z;
  return 0;
}
输出结果:The result is 8"
"没有返回值类型的函数,使用void;例二:
#include <iostream.h>
using namespace std;
void printmessage () {
  cout << ""I'm a function!"";
}
int main () {
  printmessage ();
  return;
}
输出结果:I'm a function!"
参数按数值传递和按地址传递;
上面学到的函数都是按值传递
下面是按地址传递的例子:
#include <iostream.h>
"void duplicate (int& a, int& b, int& c) {
  a*=2;
  b*=2;
  c*=2;
}"
int main () {
"int x = 1, y = 3, z = 7;
duplicate (x, y, z);
cout << ""x="" << x << "", y= "" << y << "", z="" << z;
return 0;
}"
输出结果:x=2, y=6, z=14
参数的默认值,例子如下:
#include <iostream.h>
"int divide (int  , int b = 2) {
int r ;
r = a/b;
return (r);
}"
int main () {
cout << divide (12);
cout << endl;
cout << divide (20, 4);
return 0;
}
输出结果:6换行 5
函数重载:函数名相同,参数不同。例子:
#include <iostream.h>
int divide (int a, int b) {
return (a/b);
}
float divide (float a, float b) {
return (a/b);
}
int main () {
int x = 5. y = 2;
float n = 5.0, m = 2.0;
cout << divide (x, y);
cout << "\n";
cout << divide (n, m);
return 0;
}
输出结果:2 换行 2.5
inline 函数:inline 指令可以被放在函数声明之前,要求该函数必须在被调用的地方以代码形式被编译。这相当于一个宏定义(macro)。它的好处只对短小的函数有效,这种情况下因为避免了调用函数的一些常规操作的时间(overhead),如参数堆栈操作的时间,所以编译结果的运行代码会更快一些。
声明形式:inline type name (arguments … ) { instructions … }
递归:指函数被自己调用的特点,对排序和阶乘运算很有用。例子如下:
#include <iostream.h>
long factorial (long a) {
if (a > 1) return (a *factorial (a - 1));
else return (1);
}
int main () {
long l;
cout << "Type a number: ";
cin >> l;
cout << "!" << "=" << factorial (l);
return 0;
}
"输出结果:Type a number: 9
!9 = 362880 "
函数的声明,为了让主函数能调用后面写的函数,我们需要先声明函数,否则会有编译错误。
声明形式:type name (argument_type1, argument_type2, … );
例如:
#include <iostream.h>
void odd (int a);
void even (int a);
int main () {
int i;
do {
cout << "Type a number: (0 to exit)";
cin >> i;
odd (i);
} while (i != 0);
return 0;
}
void odd (int a) {
if ((a%2) != 0) cout << Number is odd.\n";
else even (a);
}
void even (int a) {
if ((a%2) != 0) cout << Number is even.\n";
else odd (a);
}
"输出结果:Type a number (0 to exit): 9
Number is odd.
Type a number (0 to exit): 6
Number is even.
Type a number (0 to exit): 1030
Number is even.
Type a number (0 to exit): 0
Number is even.
分享到:
评论

相关推荐

    C++学习笔记--函数指针

    C++学习笔记--函数指针 函数指针 程序运行期间。每个函数都会占用一段连续的内存空间。而函数名就是该函数所占内存区域的起始地址(也称“入口地址”)。我们可以将函数入口地址赋给一个指针变量,使该指针变量...

    C++整理笔记word版——01 C++学习笔记

    C++基础的学习笔记(其中的代码源件可私信留言) C++中的空头程序 使用C++书写hello world 学习变量 学习常量 标识符命名规则 数据类型 运算符 程序流程结构 数组 函数 指针 结构体

    P237~242C++内建函数仿函数学习笔记.docx

    P237~242C++内建函数仿函数学习笔记.docx

    C++虚函数和多态学习笔记

    C++虚函数和多态学习笔记

    Effective Modern C++学习笔记

    《Effective Modern C++:改善C++11和C++14的42个具体做法(影印版)(英文版)》中包括以下主题:剖析花括号初始化、noexcept规范、完美转发、智能指针make函数的优缺点;讲解std∷move,std∷forward,rvalue引用和全局...

    C++Primer Plus学习笔记(三)

    C++ primer plus学习笔记之三,分为一下几个部分: 函数参数:介绍了函数的生命规则以及定义 数组函数:数组作为变量时的使用方法 指针和const:灵活运用指针和const 函数和二维数组:二维数组作为变量时声明以及定义...

    C++学习笔记--函数

    VS2013调试,可以直接运行。由几个例子组成,备份留作以后查看。

    P167~184C++类和函数模板学习笔记.docx

    P167~184C++类和函数模板学习笔记.docx

    C++学习笔记- 面向对象 .md

    C++学习笔记,博主个人向。内容是C++面对对象的,目录大致来源于菜鸟文档的C++面向对象,笔记是参考各种文章以及菜鸟文档改编的,内容包含C++类和对象(类定义和对象定义,类成员函数,类访问修饰符,友元函数,内联...

    C++机器学习笔记.md

    内容概要: 本文介绍了使用C++编程语言实现机器学习算法的方法,包括线性回归、决策树和支持向量机(SVM)。每个算法都配有代码示例,详细展示了实现过程和关键思想。此外,文章还提供了两个示例,分别展示了如何...

    C++学习笔记、常见面试知识点.zip

    C++学习笔记和常见面试知识点,C++11特性,包括多态、虚表、移动语义、友元函数、符号重载、完美转发、智能指针、const和static、数组指针和指针数组、struct内存对齐、enum和union关键字等等。帮助了解C++的特性,...

    C++基础编程 学习笔记

    C++基础编程,适合小白和跨专业的同学学习,涉及 C++介绍(注释,变量,关键字,标识符命名规则)、 数据类型(整型,sizeof关键字,实型(浮点型),字符型,布尔型,数据的输入)、 运算符(算数运算符,赋值...

    C++Primer Plus学习笔记(四)

    第八章函数探幽 内联函数 默认参数 函数重载 函数模板

    基于C++ QT学习笔记

    Qt 中关于各项内容的基本函数以及TCP的实例。适合初学者

    mfc c++视频笔记

    c++学习,mfc视频 笔记 构造函数:类创建一个变量后,就要为其分配内存空间,该内存空间就是由构造函数来分配的;每个类都必须创建一个构造函数,没有的话,就不能创建对象,如果没有定义构造函数,编译器会默认提供...

    VC++深入详解学习笔记

    VC++深入详解学习笔记 窗口产生过程,句柄原理,消息队列,回调函数,窗口关闭与应用程序退出的工作关系,使用VC++的若干小技巧,stdcall与Lessonecl调用规范的比较,初学者常犯错误及注意事项。

    C++ 核心编程 学习笔记

    内存分区模型: 程序运行前,程序运行后,new操作符 引用: 引用的基本使用,引用注意事项,...封装,对象的初始化和清理,C++对象模型和this指针,友元,运算符重载,继承,多态 文件操作: 文本文件,二进制文件

    C++学习笔记【原创】

    【原创】自己长久以来的C++学习记录,包含编程经验心得,基本函数语法说明等。初学者可以借鉴。

    Visual C++学习笔记

    以上方法常用于动态生成控件,虽说用控件的Create函数可以动态生成控件,但这种控件很不好控制,所以用隐藏、显示方法不失为一种替代手段。

    学习笔记 c++ 面试

    面试题学习后的一些笔记,构造函数,虚函数,虚继承。

Global site tag (gtag.js) - Google Analytics