【小白学习C++ 教程】六、C++内置函数和函数传参

举报
毛利 发表于 2021/07/15 01:20:11 2021/07/15
2.1k+ 0 0
【摘要】 @Author:Runsen 文章目录 内置函数函数传递参数形式参数(指针传递) 函数是一组一起执行一个任务的语句。每个 C++ 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。 内置函数 在我们学习如何创建函数之前,让我们先了解一些内置函数… 在C ++是一些常见的库函数sqrt(),abs(),isd...

@Author:Runsen

函数是一组一起执行一个任务的语句。每个 C++ 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。

内置函数

在我们学习如何创建函数之前,让我们先了解一些内置函数…

在C ++是一些常见的库函数sqrt(),abs(),isdigit()等。

为了使用库函数,我们通常需要包含定义这些库函数的头文件。

例如,为了使用sqrt()和等数学函数abs(),我们需要包含头文件cmath

#include <cmath>

  
 

现在我们获得了调用sqrt()任何数字的平方根的能力。

要调用基本函数,我们只需要函数名后跟一对括号,如sqrt(9). 例如:

#include <iostream>
#include <cmath>

int main(){ std::cout << sqrt(9) << "\n";
}

  
 

使用rand()加上模运算符调用,生成随机数。例如,rand() % 29将输出 028 之间的随机数

函数

C++ 函数由两个不同的部分组成:

  • 声明:这包括函数的名称、返回类型是什么以及任何参数(如果函数将接受输入值,称为参数)。
  • 定义:也称为函数体,它包含函数应该做什么的指令。

C++ 中的函数定义的一般形式如下:

return_type function_name( any, parameters, you, have ) { // Code block here return output_if_there_is_any;
 
}
  
 

C++ 中,函数由一个函数头和一个函数主体组成。下面列出一个函数的所有组成部分:

  • 返回类型: 函数可以返回一个值。该return_type是值的函数返回的数据类型。某些函数执行所需的操作而不返回值。在这种情况下, return_type 是关键字void。

  • 函数名称:这是函数的实际名称。函数名和参数列表共同构成了函数签名。

  • 参数:参数就像占位符。当一个函数被调用时,你将一个值传递给参数。该值称为实际参数或实参。参数列表是指函数参数的类型、顺序和数量。参数可选;也就是说,一个函数可能不包含任何参数。

  • 函数体:函数体包含一组定义函数功能的语句。

下面是一个函数声明的例子。

void greet() { std::cout << "Hello World";
}

  
 

在上面的程序中,我们声明了一个名为greet(). 要使用该函数greet(),我们需要调用它。

下面是我们如何调用上述greet()函数。

int main() { // calling a function    greet(); 

}

  
 

传递参数

在C++中,函数声明的代码add应该在函数调用main之前。

C++中函数参数的传递方式有三种:传值、传地址、传引用。

这里先学习最简单的传值。在这种传递参数
中,我们传递存储或复制到函数形式参数中的参数值。因此,原始值不变,只是函数内部的参数发生了变化。

void calc(int x);

int main()
{ int x = 10; calc(x); printf("%d", x);
}

void calc(int x)
{ x = x + 10 ;
}

  
 

在这种情况下,实际变量x不会改变,因为我们按值传递参数,因此传递了 x 的副本,该副本已更改,并且该复制的值在函数结束时被销毁(超出范围)。所以main() 中的变量x的值仍然是 10。

但是我们可以改变这个程序来修改原来的X,通过使函数计算时候,返回一个值,并存储X该值。

int calc(int x);

int main()
{ int x = 10; x = calc(x); printf("%d", x);
}

int calc(int x)
{ x = x + 10 ; return x;
}

  
 

20

形式参数(指针传递)

传递,形式参数可以作为引用或指针,在这两种情况下,它们都会改变原始变量的值。

void calc(int *p);

int main()
{ int x = 10; calc(&x); // 传递x的地址作为参数 printf("%d", x);
}

void calc(int *p)
{ *p = *p + 10;
}

  
 

最终结果是20.

文章来源: maoli.blog.csdn.net,作者:刘润森!,版权归原作者所有,如需转载,请联系作者。

原文链接:maoli.blog.csdn.net/article/details/117523303

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。