当前位置: 首页 > article >正文

C++局部变量与全局变量

在C++中,可以为函数的参数指定默认值。这样做的好处是在调用函数时,如果没有提供对应的参数,那么将会使用默认值。

下面是一个求2个或3个数中最大数的函数的示例,其中使用了默认参数:

#include <iostream>
using namespace std;

int maxOfTwo(int a, int b) {
    return (a > b) ? a : b;
}

int maxOfThree(int a, int b, int c = 0) {
    return maxOfTwo(maxOfTwo(a, b), c);
}

int main() {
    cout << "Max of 2 and 3: " << maxOfThree(2, 3) << endl; // 输出3
    cout << "Max of 5, 7, and 1: " << maxOfThree(5, 7, 1) << endl; // 输出7
    return 0;
}

在上面的示例中,maxOfThree 函数有三个参数,其中第三个参数 c 使用了默认值 0。这意味着在调用 maxOfThree 函数时,可以只传入两个参数而不提供第三个参数,此时 c 将使用默认值 0。

在C++中,局部变量是在函数内部声明的变量,它们只能在其所在的代码块(通常是函数体)内部使用。全局变量则是在所有函数之外声明的变量,它们可以被整个程序访问。

下面是一个简单的示例来展示局部变量和全局变量的概念:

#include <iostream>
using namespace std;

// 全局变量
int globalVar = 10;

void myFunction() {
    // 局部变量
    int localVar = 5;
    cout << "局部变量 localVar 的值为: " << localVar << endl;
    cout << "全局变量 globalVar 的值为: " << globalVar << endl;
}

int main() {
    myFunction();
    // 尝试输出局部变量 localVar,这将导致编译错误,因为它只在 myFunction 函数内可见
    // cout << "尝试输出局部变量 localVar 的值: " << localVar << endl;
    cout << "全局变量 globalVar 的值为: " << globalVar << endl;
    return 0;
}

在上面的示例中,globalVar 是一个全局变量,它可以在 myFunction 函数和 main 函数中访问。而 localVar 是一个局部变量,它只能在 myFunction 函数内部访问。如果在 main 函数中尝试输出 localVar 的值,将导致编译错误,因为 localVar 只在 myFunction 函数中可见。

以上述示例编译并运行后,将会输出以下内容:

局部变量 localVar 的值为: 5
全局变量 globalVar 的值为: 10
全局变量 globalVar 的值为: 10

http://www.kler.cn/news/234773.html

相关文章:

  • ChatGPT高效提问—prompt实践
  • 修改SpringBoot中默认依赖版本
  • 快速手动完成 VS 编写脚本自动化:如何选取最高效的工作方式?
  • MySQL(基础)
  • 集群及LVS简介、LVSNAT模式原理、LVSNAT模式配置、LVSDR模式原理、LVSDR模式配置、LVS错误排查
  • HiveSQL——条件判断语句嵌套windows子句的应用
  • UR10+gazebo+moveit吸盘抓取搬运demo
  • 数据分析基础之《pandas(8)—综合案例》
  • 解决Spring Boot Configuration Annotation Processor not configured的问题
  • KY139 毕业bg
  • 协议-TCP协议-基础概念04-可能发生丢包的位置-linux配置项梳理(TCP连接的建立和断开、收发包过程)
  • 更换商品图片日期JSON格式报错 - 序列化与反序列化日期格式设置
  • springcloud分布式架构网上商城源码和论文
  • Linux笔记之Docker进行镜像备份与迁移
  • openresty (nginx)快速开始
  • 【数学建模】【2024年】【第40届】【MCM/ICM】【F题 减少非法野生动物贸易】【解题思路】
  • 分享76个时间日期JS特效,总有一款适合您
  • Redis进阶(二):事务
  • 巴尔加瓦算法图解:算法运用(上)
  • Java安全 CC链1分析(Lazymap类)
  • 防火墙的区域隔离
  • 操作系统——内存管理(附带Leetcode算法题LRU)
  • Xcode配置GLFW GLAD (MAC)
  • MongoDB聚合:$unionWith
  • 数据库恢复
  • 【EAI 020】Diffusion Policy: Visuomotor Policy Learning via Action Diffusion
  • 14.1 OpenGL图元装配和光栅化:在光栅化之前丢弃图元
  • 问题排查利器 - 分布式 trace
  • BKP寄存器与RTC实时时钟
  • Mac中管理多版本Jdk