文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

聊聊C++内置函数和函数传参

2024-12-03 04:03

关注

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

内置函数

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

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

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

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

  1. #include  

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

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

  1. #include  
  2. #include  
  3.  
  4. int main(){ 
  5.     std::cout << sqrt(9) << "\n"

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

函数

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

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

  1. return_type function_name( any, parameters, you, have ) { 
  2.   
  3.    // Code block here 
  4.   
  5.    return output_if_there_is_any; 
  6.   

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

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

  1. void greet() { 
  2.     std::cout << "Hello World"

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

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

  1. int main() { 
  2.       
  3.     // calling a function    
  4.     greet();  
  5.  

 

传递参数

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

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

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

  1. void calc(int x); 
  2.  
  3. int main() 
  4.     int x = 10; 
  5.     calc(x); 
  6.     printf("%d", x); 
  7.  
  8. void calc(int x) 
  9.     x = x + 10 ; 

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

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

  1. int calc(int x); 
  2.  
  3. int main() 
  4.     int x = 10; 
  5.     x = calc(x); 
  6.     printf("%d", x); 
  7.  
  8. int calc(int x) 
  9.     x = x + 10 ; 
  10.     return x; 

20

形式参数(指针传递)

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

  1. void calc(int *p); 
  2.  
  3. int main() 
  4.     int x = 10; 
  5.     calc(&x);     // 传递x的地址作为参数 
  6.     printf("%d", x); 
  7.  
  8. void calc(int *p) 
  9.     *p = *p + 10; 

最终结果是20.

 

来源:Python之王内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯