C/C++里面的全局变量是不是每运行一下,那个值要变?

如题所述

首先全局变量的值不加以认为改动,不会改变。
其次全局变量的值在子函数中改动也会影响到主函数
最后在以个函数中,重新定义了一个与全局变量的变量名相同的变量时,会在这个函数里蔽屏掉全局变量,一出这个函数就恢复正常。
#include<stdio.h>
int
a=1;
int
n(int
p)
{
p=12;
}
main()
{
printf("%d\n",a);
a=n(a);
printf("%d\n",a);
int
a;
printf("%d\n",a);
}
运行结果是:
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-04-09
说的也是,全局变量如果没有改变值的话,那麽就是初始给定的值,如果改变了这个值,那麽打印的肯定是改变的这个值。
第2个回答  2019-12-10
全局变量是存活在程序运行期间的,他可以被该程序的其他函数调用和改变,全局变量由编译器对其初始化

C\/C++里面的全局变量是不是每运行一下,那个值要变?
首先全局变量的值不加以认为改动,不会改变。其次全局变量的值在子函数中改动也会影响到主函数。最后在以个函数中,重新定义了一个与全局变量的变量名相同的变量时,会在这个函数里蔽屏掉全局变量,一出这个函数就恢复正常。int a=1;int n(int p){p=12;}main(){printf("%d\\n",a);a=n(a);...

c++ 全局变量
C\/C++语言中能够被顺序执行的控制流代码只能写在函数作用域内,在函数作用域以外之处写赋值语句自然出错。这个规定从某种意义上强调了结构化程序设计的思想(顺序的语句必须通过写到函数内成为模块化的代码通过main函数这类入口进行调用,而不是在一个源文件依据语句的位置被执行)。顺便:char *a =(char...

C++中全局变量的值需要改变怎么办
声明为 const 的量初始化后,它的数值在程序中是不允许改变的,因为它不可为左值。例如: const int lane = 1000; const int v_max = 18; 数值在程序中是不允许改变。若要变,只能声明为非 const。 例如:int lane = 1000, v_max = 18;全局量 v 用指针: int *v;在程序中动态...

C++全局变量初始化
全局变量初始化的顺序取决于它们在编译单元内的声明顺序,销毁顺序则相反。对于不同编译单元间的全局变量,C++标准并未明确规定它们之间的初始化(销毁)顺序,实现上由编译器自行决定。不同编译单元间的全局变量的初始化顺序通常是不确定的,即使对同一编译器和同一代码,两次编译的结果也可能不同。在全局...

静态变量和全局变量有什么区别?
静态变量在程序运行过程中只在第一次初始化时,会赋初始值,以后即使再初始化其值也不会改变。任何变量的存储空间及存储在内存中的位置都是由操作系统在程序运行时才分配的,只能说存储空间的大小是程序里面的初始化语句决定的。静态变量、全局变量和局部变量 1.从作用域看:C++变量根据定义的位置的不同...

在C++中,全局变量会不会有缺点?(比如。:会被自定义的函数的X所影响...
局部和全局变量可以重名,互不影响,你在show中新定义了一个x,该x只在show方法中有效,在show中的x与全局的x无关,第二个图,在show中没有新定义x,而是直接修改全局x,让它等于222,所以全局x的值在调用show方法之后就变了,后面的程序访问到的全局x也就变了 ...

为什么全局变量无须初始化,局部变量必须初始化
全局变量有时也需要初始化,而局部变量其实大部分时间都没有初始化。不要把赋初值与初始化混淆了:初始化是由编译器做的,形成可执行文件后,那些变量的值就在软件文件中放着,执行程序时直接使用了;而赋初值是由C\/C++代码实现的,程序开始执行后才给变量赋的值。只是全局变量如果不显式初始化,那么...

C++中,类内的成员变量自动初始化为零吗,而全局变量随意赋值
如果该对象是全局的话,其成员中的内置类型就会自动初始化对应的默认值(像整形就为0)和调用构造函数初始化,如果是局部的话只会调用默认构造函数赋值,构造函数中没有涉及到的成员,并不会赋值。

C++ 全局变量和全局静态变量有什么区别?
3. 全局变量、静态变量的生命期和程序生命期是一样的,在程序结束之后操作系统会回收空间。变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。在指令式语言中,变量通常是可变的;但在纯函数式语言(如Haskell)中,变量可能是不可变(immutable)的。在一些语言中...

c++定义全局变量后在子函数中的值改变了但是在主函数中的值还是0
如果是这样的话,主函数或者子函数使用的是该函数里面定义的变量(局部变量),全局变量被自动忽视了。但是局部变量不影响全局变量的值。所以,无论你是在主函数、还是子函数,或者两个里面都定义了同名变量,你在子函数中更改值是达不到目的的。希望对楼主有用。

相似回答