美文网首页
c++ 4、函数

c++ 4、函数

作者: 八戒无戒 | 来源:发表于2020-04-26 23:56 被阅读0次

函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实际主体。
函数由函数头函数体组成,函数头包含:返回类型,函数名称参数,void修饰的函数可以无返回值
函数参数:函数使用参数,必须声明接受参数值的变量,变量称为函数的形式参数,进入函数创建,退出函数销毁。

void main_func(int x1, int x2)
{
  do something;
}

以上:void为返回类型,main_func为函数名称,x1和x2为参数,int为参数的类型声明,{}内函数体

函数参数(3种):

  • 1、传值调用
    该方法把参数的实际值赋值给函数的形式参数。在这种情况下,修改函数内的形式参数对实际参数没有影响。
  • 2、引用调用
    参数的引用赋值给形式参数。在函数内,该引用用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。
  • 3、指针调用
    参数的地址赋值给形式参数。在函数内,该地址用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。

例如:

#include <iostream>
#include <stdio.h>
using namespace std;
/*
4、函数
函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实际体。
函数由函数头和函数体组成,函数头包含:返回类型,函数名称和参数,void修饰的>函数可以无返回值
函数参数:
      函数使用参数,必须声明接受参数值的变量,变量称为函数的形式参数,进>入函数创建,退出函数销毁。
      三种调用方式:传值调用、指针调用和引用调用
          传值调用:该方法把参数的实际值赋值给函数的形式参数。在这种情>况下,修改函数内的形式参数对实际参数没有影响。
          指针调用:参数的地址赋值给形式参数。在函数内,该地址用于访问>调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。
          引用调用:参数的引用赋值给形式参数。在函数内,该引用用于访问>调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。
*/

int a = 50, b = 100;
int &o = a, &w = b;
int *p = &a, *q = &b;
extern void swap_num1(int, int);
extern void swap_num2(int&, int&);
extern void swap_num3(int*, int*);

int main()
{
  swap_num1(a, b);                           // 传值调用,a和b值不会改变
  cout << "a=" << a << ",b=" << b << endl;
  swap_num2(o, w);                           // 引用调用,a和b的值会交换
  cout << "a=" << a << ",b=" << b << endl;
  swap_num3(p, q);                           // 指针调用,a和b的值会交换
  cout << "a=" << a << ",b=" << b << endl;
  return 0;
}

void swap_num1(int x, int y)                 // 传值参数,原值不会被改变
{
  int t;
  t = x, x = y, y = t;
}
void swap_num2(int& x, int& y)                 // 引用参数,原值会被改变
{
  int t;
  t = x, x = y, y = t;
}
void swap_num3(int* x, int* y)                 // 指针参数,原值会被改变
{
  int t;
  t = *x, *x = *y, *y = t;
}
  

运行结果为:

a=50,b=100
a=100,b=50
a=50,b=100

相关文章

  • 《深入探索C++对象模型》笔记 Chapter4

    《深入探索C++对象模型》笔记 Chapter2《深入探索C++对象模型》笔记 Chapter3 第4章 函数 4...

  • c++ 4、函数

    函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实际主体。函数由函数头和函数体组成,函数头包含:...

  • 任意结构体转为json String

    分类:UE4 c++ 标签:蓝图函数库 新建了一个c++写的蓝图函数类 在项目的build.cs里面添加"Json...

  • C/C++编程笔记:C语言中time.h用法详解(二),函数应用

    接上节丨C/C++编程笔记:C++中对日期和时间操作(一),计时函数详解 4.与日期和时间相关的函数及应用 在本节...

  • windows逆向3

    VC 程序内存和编译的一些特征C++ 构造函数C++ 成员函数C++ 析构函数C++ 全局对象的构造C++ 全局对...

  • UE4之UFUNCTION介绍

    UFUNCTION UFunction 是虚幻引擎4(UE4)反射系统可识别的C++函数。 UObject 或蓝图...

  • 异步

    WebAssembly C++ 阻塞调用JS异步函数[https://zhuanlan.zhihu.com/p/4...

  • 日记之旅第三天

    上午:1.学习C++中函数4中特性,函数返回值,函数形参,函数模版,其中模版最为难以理解,值得自己后面好好研究下下...

  • C++ 拷贝构造函数浅析

    什么是拷贝构造函数:拷贝构造函数,顾名思义,就是在拷贝的时候调用的构造函数。 几个原则:C++ primer p4...

  • C++Primer之 函数探幽

    读C++ primer总结 C++函数包括函数声明和函数定义,函数声明即函数原型,一般隐藏在include文件中。...

网友评论

      本文标题:c++ 4、函数

      本文链接:https://www.haomeiwen.com/subject/vnzswhtx.html