美文网首页
C、C++ 全局变量、局部变量

C、C++ 全局变量、局部变量

作者: Kael_Zhang的安卓笔记 | 来源:发表于2023-03-08 09:09 被阅读0次

局部变量

函数中定义的变量是该函数的局部变量。它们在其他函数的语句中是不可见的,通常无法访问它们。下面的程序显示,由于函数中定义的变量被隐藏,所以其他函数可以拥有名称相同但实际上互不相干的变量

int main()
{
    int i = 1; //局部变量
    cout << "main, i is " << i << endl;
    fun2();
    return 0;
}

void fun2()
{
    int i = 2; // 局部变量
    cout << "In fun2, i is " << i<< endl;
}

虽然有两个名为 i 的变量,但是程序在同一时间只能“看到”其中一个,因为它们在不同的函数中,只有在定义的函数正在执行时,局部变量才存在,这称为局部变量的生存期。当函数开始时,它的形参变量和它定义的任何局部变量都将在内存中创建,当函数结束时,它们被销毁

全局变量

  • 全局变量是程序中定义在所有函数(包括 main 函数)之外的任何变量。全局变量的作用域是程序从变量定义到整个程序结束的部分。这意味着全局变量可以被所有定义在全局变量之后的函数访问

全局变量在哪定义

  • 一般来讲,全局变量一定要定义在.c文件中,比如int g_int=0;,然后头文件 extern int g_int 声明!
  • 如果全局变量特别多,上百个,可以专门用一个头文件来引入这些全局变量
  • 一定不能在头文件定义变量,容易重定义!!!

全局变量注意事项

  • 全局变量使代码调试维护变得困难。程序中的任何语句都可以更改全局变量的值,如果出错,追踪将是很困难的
  • 全局变量使代码可移植性变差,使用全局变量的函数通常要依赖这些变量。如果想移植这些函数,则很可能必须重新设计它,使它不再依赖于全局变量。
  • 全局变量使代码可读性变差。程序中的任何语句都可以更改全局变量的值,因此,要了解任何使用了全局变量的那一部分程序,则必须了解访问该全局变量的所有程序其他部分

相关文章

  • c++——文件操作2-17和一周学习目录

    C++ 初级C++ 1)C++和c区别: C++函数例:hello.cpp 全局变量和局部变量 作用域运算符 : ...

  • C++——c++知识思维导图

    初级C++ 1)C++和c区别: C++函数例:hello.cpp 全局变量和局部变量 作用域运算符 : :con...

  • C++面试考点总结

    static作用是什么?在C和C++中有何区别? static可以修饰局部变量(静态局部变量)、全局变量(静态全局...

  • C++ 语言基础

    C++ 语言基础 1. 局部变量和全局变量能否重名? 局部变量是定义在函数内部的变量。全局变量是定义在函数之外的变...

  • C++之作用域标识符

    C++中增加的作用域标识符 :: 用于对与局部变量同名的全局变量进行访问

  • 一、c和c++关键字总结

    c和c++基础 一、static 1、面向过程时 1)数据持久化(包括全局变量和局部变量)2)初始化为03)作用域...

  • 全局变量&局部变量

    var a; //全局变量 function test(){ var b; //局部变量 c; //全局变量 }

  • C学习:04内存四区及变量

    变量介绍 C中分全局变量和代码块中的局部变量.static可以修饰全局变量和局部变量以及方法.C中的方法名不同文件...

  • 网易云课堂(Boolan)C++ 第一周笔记

    1、局部变量的作用域(局部变量名与全局变量相同时,可使用::访问全局变量) C:不可重复定义,必须在函数体前面定义...

  • C++对C增强部分

    全局变量检测增强int a;int a = 10;C++ 不可以,C可以 函数检测增强函数参数类型增强,C++ 必...

网友评论

      本文标题:C、C++ 全局变量、局部变量

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