- 北营
-
首先全局变量的值不加以认为改动,不会改变。
其次全局变量的值在子函数中改动也会影响到主函数。
最后在以个函数中,重新定义了一个与全局变量的变量名相同的变量时,会在这个函数里蔽屏掉全局变量,一出这个函数就恢复正常。
#include<stdio.h>
int
a=1;
int
n(int
p)
{
p=12;
}
main()
{
printf("%d ",a);
a=n(a);
printf("%d ",a);
int
a;
printf("%d ",a);
}
运行结果是:
- ardim
-
说的也是,全局变量如果没有改变值的话,那麽就是初始给定的值,如果改变了这个值,那麽打印的肯定是改变的这个值。
- meira
-
全局变量是存活在程序运行期间的,他可以被该程序的其他函数调用和改变,全局变量由编译器对其初始化
C语言中全局变量的储存类别是
全局变量全部存放在静态存储区中,在程序开始执行时给全局变量分配存储区,程序执行完毕就释放。2023-06-10 00:47:312
C语言中全局变量的优缺点?
以下纯属自己在这两年来学习c语言、JAVA的观点:全局变量对于编程来说使用起来最方便,随时可以调用它的值,且改变它的值,使用起来方便快捷;但是也有它的缺点:自这个程序开始运行起,这个全局变量的空间就被申请,直到整个程序运算结束时,空间才会被释放,若是局部变量(以c语言为例)在一个函数中的变量,在进入这个函数时,该函数中的变量空间被申请,结束函数时,这些变量的空间被释放,有利于提高内存空间的利用率;当全局变量是二维数组或多维数组时,申请为全局变量就不能及时释放空间,占用较大:如迷宫问题 用一个二维乃至多维数组存储迷宫信息,申请全局变量时占用的空间较大(但是用起来是真的方便,/笑); (我这儿并不是叫你迷宫问题不要申请全局变量的二维数组哈)一般将在一个程序中经常会用到的变量或数据存储为全局变量,使用一次或几次就丢的数据一般在具体函数中定义。观点不一定正确,但希望有用。2023-06-10 00:47:441
C语言中全局变量可以是非静态变量吗
wwrw2023-06-10 00:47:566
c语言如何将数组作为全局变量
把数组在任何一个函数外定义即可。所以把int a[100];放到main()函数上面就行了。2023-06-10 00:48:153
c语言,如何定义数组为全局变量?
在C语言中,全局变量和函数声明及定义并列,也就是说,声明在最外层作用域的变量即为全局变量如在如下程序中int i;int main(){ int i_copy = i; i = 9; return 0;}inti就是一个全局变量,故在main函数中可以调用或修改i的值所以,定义数组也和普通全局变量的方法相同,如char str[10];int main(){ str[0] = "a"; str[1] = ""; return 0;}但是有几点需要注意:C中自上向下语法分析和编译语法树,如果要让所有函数都能调用该全局变量,就要把其放在所有函数定义之前,确保声明的作用域覆盖整个程序;在全局变量声明时,其初始值必须为编译时常量,不能为变量;若要使用程序外的全局变量,需要在修饰符中加入extern关键字,并不要忘了和原本定义处链接2023-06-10 00:48:361
c语言全局变量怎么用
只要把定义变量的语句放在函数的外面。这样定义的变量就是全局变量。全局变量有默认的初始值为0, 全局变量对在它起作用范围内的每一个函数都可以生效。2023-06-10 00:48:461
在c语言中,是怎么使用全局变量使得被调用函数能够返回多个值?
分析:全局变量作为C语言的一个知识点,虽然我们都了解它的特点,但在实际教学过程中应用得并不是很多。由于全局变量的作用域是从定义变量开始直到程序结束,而对于编写有多个返回值的C语言函数,我们可以考虑把要返回的多个值定义成全局变量。当函数被调用时,全局变量被更改,我们再把更改后的全局变量值应用于主调函数中。函数被调用后被更改后的全局变量值即为函数的数个返回值。下面以一个实例演示该方法的应用。实例:编写函数求3个数中的最大值与最小值。方法:把最大值、最小值分别定义成2个全局变量max、min,在用户自定义函数中把求出来的最大值与最小值分别赋给全局变量max、min。函数调用完毕后全局变量的max、min值即保存了函数要求返回的值。程序参考代码如下:#include"stdio.h"#include"conio.h"intmax,min;/*定义两个全局变量用于保存函数返回值*/voidmax_min(inta,intb,intc)/*定义求最大最小值的函数*/{max=min=a;/*初始化最大最小值*/if(maxif(maxif(min>b)min=b;if(min>c)min=c;}main(){intx,y,z;printf("请输入3个整数: ");scanf("%d,%d,%d",&x,&y,&z);max_min(x,y,z)/*调用求最大值与最小值的函数*/printf("三个数中的最大值为:%d;最小值为:%d",max,min);/*输出最大值与最小值*/getch();}2023-06-10 00:48:561
C语言的函数能不能调用全局变量?
#includevoidfunc(int);intx;//全局变量貌似应该在这里定义呢main(){func(1);printf("er");}voidfunc(inta){x=a;(这里报错,说x还未定义)}2023-06-10 00:49:063
我要改变全局变量的值 C语言
对于全局变量,如果在函数中修改了值,则全局变量的值就会被改变,在其他函数中访问的就是修改后的值;但是,如果在函数中定义了跟全局变量名称一样的局部变量,则函数中修改的是局部变量,全局变量的值是无法被修改的。2023-06-10 00:49:291
c语言定义了一个全局变量,为什么该变量在函数调用后,值没发生改变?
再次赋值后才会变化,按你说的应该没有重新赋值。2023-06-10 00:49:393
在C/C++中,全局变量,形参名字可以相同吗
当然了形参了,全局函数是不能相同的,编译器会报错误的。2023-06-10 00:49:522
C语言中,如何定义一个变量,使其既可以在主函数中使用,也可以在子函数中使用
#define PI 3.14152023-06-10 00:50:005
如何把一个char数组作为全局变量使用
C语言可以通过在.c文件中定义,头文件中extern的方式实现一个能够在所有文件中都可以使用的全局数组变量。具体做法如下:设有一个多项目文件有 1.c、2.c和3.c三个源程序文件;如果有一个全局数组需要所有文件使用,那么可以添加一个data.c文件,在其中添加全局数组的定义;向项目中添加data.h文件,在data.h文件中用 extern声明该数组;只需要在相应的.c文件中添加#include "data.h",那么久可以使用data.c中的全局数组了。2023-06-10 00:50:471
C语言子模块中函数入口参数名可以跟全局变量名(结构体变量)一样吗
你问题也没必要问的这么复杂吧?不就想问,形参和实参可不可以同名呗。二者是否同名没什么关系。同名的情况下,二者作用域不同,当调用函数时,实参将值传给形参,然后函数调用过程中会暂时屏蔽同名实体变量,等函数调用完,形参就会释放。2023-06-10 00:51:093
c语言改变全局变量
将i声明改为static int i=0;2023-06-10 00:51:194
C语言头文件定义全局变量问题
其实没必要纠结~~你只要注意头文件~~的定义~~然后在引用的时候注意引用了哪个就好了~~这语句有点乱~~你自己规范点就好了~~想那么多没用的东西干嘛~~哪一个正常点的项目看看代码2023-06-10 00:51:373
c 全局变量怎么赋初值
int val = 1;直接定义时赋值 就行了2023-06-10 00:52:362
C语言中的全局变量的默认值
随机的吧,跟编译器和环境有关系吧. 还有数据类型2023-06-10 00:52:465
C语言中 局部变量和全局变量都是存储在什么区
全局数据区:存放程序的全局数据和静态数据堆区:存放程序的动态数据2023-06-10 00:53:244
C语言中,这个main函数里定义的变量是全局变量还是局部变量?
是局部变量。外面的方法是无法调用main函数的变量,除非传参数过去定义全局变量的话直接在main函数外面定义啊2023-06-10 00:53:567
C语言中关于全局变量与传值调用
是没有错啊,i为全局变量为0,执行函数fun(i)的时候就加1,既i=1,但是全局变量改变不了,还是为0所以输出为102023-06-10 00:54:532
在C语言中,一个文件中定义的 全局变量,在另一个文件中能用吗
能。因为全局变量默认是extern的,函数也是。如果你写了static修饰它就不行了2023-06-10 00:55:001
怎样使C语言全局变量在多个文件中使用?
extern 关键字x0dx0aextern int i;这样就可以在其他文件中使用x0dx0a在头文件中声明x0dx0aa.hx0dx0aextern int i;x0dx0a在其他某个c文件中定义x0dx0aint i =0;x0dx0a其他要使用i变量的c源文件只需要include"a.h"就可以2023-06-10 00:55:061
怎样使C语言全局变量在多个文件中使用?
extern 关键字extern int i;这样就可以在其他文件中使用在头文件中声明a.hextern int i;在其他某个c文件中定义int i =0;其他要使用i变量的c源文件只需要include"a.h"就可以2023-06-10 00:55:151
C语言头文件定义全局变量问题
1、首先,我们可以在函数外面定义变量,就是全局变量。2、局部变量可以与全局变量同样命名。3、但是优先级是局部变量优先。4、但是局部变量的生命周期是整个结构内。5、全局变量是整个程序结束,才释放。6、我们也可以为变量加上修饰符。2023-06-10 00:55:511
在c语言中,使用全局变量找出数组中最大和最小数
首先将数组排序,去两端就可以了。排序函数可以这样://最大在前,最小在后。void get_D(U32 *Temp_p,U8 Temp_l){ U8 Temp_i,Temp_o; U32 Temp_d; for(Temp_i=0;Temp_i<Temp_l;Temp_i++){ for(Temp_o=Temp_i;Temp_o<Temp_l;Temp_o++){ if(Temp_p[Temp_i]>Temp_p[Temp_o]){ Temp_d = Temp_p[Temp_i]; Temp_p[Temp_i] = Temp_p[Temp_o]; Temp_p[Temp_o] = Temp_d; } } }2023-06-10 00:56:411
C语言中全局变量调用后会被修改值吗
对于全局变量,如果在函数中修改了值,则全局变量的值就会被改变,在其他函数中访问的就是修改后的值;但是,如果在函数中定义了跟全局变量名称一样的局部变量,则函数中修改的是局部变量,全局变量的值是无法被修改的。2023-06-10 00:56:541
C语言,全局变量和局部变量有什么区别
作用域不同(根据名字就可看出)。存储的位置不同,全局变量一般在静态存储区;而局部变量则一般在栈区。声明的位置不同,全局变量在函数外,而局部变量在函数体内部。全局变量,系统会自动为其初始化;局部变量则不会。2023-06-10 00:57:0415
C语言 关于全局变量问题 50分
说明两点:1 局部在函数pf里不行。因为数组k 等到函数调用完毕,就撤销了,被删。2 局部在main函数 int total=0, k; int k[MAX]; //int的k 和 数组k 不要同名2023-06-10 00:57:516
C语言全局变量
值都不变,函数传值不是引用传值,所以会在代码中产生一个其他变量接受你传的两个值,所以对本身的传入的参数没有影响。不懂就问我,保证让你懂2023-06-10 00:58:073
c语言中的变量初始值是全局变量吗
看该变量定义在什么位置,如果是所有的函数外面就是全局变量,如果定义在函数内部就是局部变量。2023-06-10 00:58:142
c语言全局变量的问题
把 courseName 的声明放到主函数的外面,全局变量的声明是在所有的函数外声明的。请采纳。2023-06-10 00:58:284
C语言,全局变量,关于头文件包含的问题
首先弄明白#include是什么意思#include的意思是把后面的被包含文件的内容复制一份放到当前文件里。你在toto.h里定义一个全局变量,这个头文件分别被两个c文件包含,就相当于在两个c文件里都定义了一个全局变量,这两个全局变量是独立的。另外,test1和test2都有自己独立的main函数,所以最终生成可执行文件时,两个也是独立的,不会干扰。所以test1里打印是递增,不影响test2打印始终保持不变。2023-06-10 00:58:356
- 变量初始化赋值时必须是常量,不能是变量.所以你可以先在初始化定义uintc=0;之后在程序里给C赋值c=a*b;或者#defineuintunsignedint#definea10#defineb3uintc=(a*b);只能这样....给分吧.哈哈.2023-06-10 00:58:511
cfree怎么在调试时查看全局变量的值
1、首先打开cfree编译器,登录自己的账号和密码。2、其次进入该编译器的主页面,点击调试。3、最后选择总览选项,即可查看全局变量的值。2023-06-10 00:58:571
在c函数中,最好使用全局变量。 为什么不对? 在c语言中,函数名的存储类别为外部。 为什么是对的?
种类不同 所需答案也不同2023-06-10 00:59:272
C语言 修改全局变量的问题
TIME[2]是实参,调用时只把它的值拷贝给了局部变量b,函数中操作的是b而不是TIME[2],所以TIME[2]不会有变化。2023-06-10 00:59:361
C语言全局变量的优缺点
全局变量会造成程序的耦合性太强2023-06-10 00:59:464
C语言中全局变量问题
i的初值是0,第一个循环不会执行,但i=-1,第二个循环就是死循环了。2023-06-10 00:59:533
C语言中的,全局变量与局部变量的区别?
全局变量在整个程序中都能用局部变量是定义在哪个里面哪个里面就可以用,其他不可以用2023-06-10 01:00:0312
c语言中什么时候用全局变量什么时候用局部变量
1)静态局部变量在函数内定义,但不象自动变量那样,当调用时就存在,退出函数时就消失。静态局部变量始终存在着,也就是说它的生存期为整个源程序。 (2)静态局部变量的生存期虽然为整个源程序,但是其作用域仍与自动变量相同,即只能在定义该变量的函数内使用该变量。退出该函数后, 尽管该变量还继续存在,但不能使用它。 (3)对基本类型的静态局部变量若在说明时未赋以初值,则系统自动赋予0值。而对自动变量不赋初值,则其值是不定的。 根据静态局部变量的特点, 可以看出它是一种生存期为整个源文件的量。虽然离开定义它的函数后不能使用,但如再次调用定义它的函数时,它又可继续使用, 而且保存了前次被调用后留下的值。 因此,当多次调用一个函数且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量。虽然用全局变量也可以达到上述目的,但全局变量有时会造成意外的副作用(尤其是短名全局变量的变量名污染很严重),因此仍以采用局部静态变量为宜。 简单的说静态局部变量与全局变量最明显的区别就在于:全局变量在其定义后所有函数都能用,但是静态局部变量只能在一个函数里面用。2023-06-10 01:00:341
c语言 怎么把全局变量变成局部变量
#include <stdio.h>#include <stdlib.h>struct student_s {char* name;int age;struct student_s* next; };void printOneStudent(struct student_s student){printf("%s (%d) ", student.name, student.age);} void printStudents(const struct student_s* student){while (student != NULL) {printOneStudent(*student);student = student->next;}}int main(void){struct student_s student,anotherStudent;student.name = "Xiaofeng Lin";student.age = 50;student.next = &anotherStudent;anotherStudent.name = "Jingwu Xiao";anotherStudent.age = 21;anotherStudent.next = NULL;printStudents(&student);return EXIT_SUCCESS;}2023-06-10 01:00:431
c语言 函数调用全局变量需要声明变量吗
比如 int a = 10,b=20;int getSub(int a,int b){ return a+b;//这里的a,b和全局变量a,b没有任何关系——除了名字相同。在该函数中形参a,b会覆盖全局变量a,b。}如果你这样写int getSub(){ return a+b;//那么这里的a,b就是全局变量了。 }2023-06-10 01:00:521
c语言中全局变量及输出问题?
可参考:http://zhidao.baidu.com/question/505682121.html2023-06-10 01:01:144
c语言中,如何将结构体里的数据 定义 为全局变量,因为我在其他文件中要用到这些变量
把结构体定义在.h文件中也就是头文件中2023-06-10 01:01:247
C语言所有变量都默认为auto,全局变量不能为auto,那全局变量默认为什么?
auto在c语言里面可能是这三种存储:register/extern/static。变量涉及到几个东西:存储位置,作用域。局部变量全局变量是作用域不同。而变量存储在内存,寄存器还是引用外部变量可能会导致读写速度上差别。局部变量极有可能会auto成register,以便快速读写。全局变量也都可以是这几种。不过说实话,auto在c里面实在没什么用。这才导致了c++把auto用来做更有意义的事情了。2023-06-10 01:01:402
【求助c语言】,凡是函数中未指定存储类别的全局变量,其隐含的存储类别为
全局变量其默认储存类型都是extern,而局部变量的默认储存类型是auto,函数中声明的变量是局部变量,所以原题中说“函数中未指定存储类别的全局变量”这句本身就有问题。记着:全局变量extern局部变量auto2023-06-10 01:01:491
C语言:全局变量可以被任何一个函数中的任何一个表达式使用
代码何在?2023-06-10 01:02:044
C语言怎么在函数内声明全局变量
只有采用分配内存的方式来生成全局变量了int * p;p=(int*)malloc(sizeof(int));p=fscanf("......");2023-06-10 01:02:142
续写作文怎么写三年级
当时小明和小红一起叫来了很多同学还有班主任也来了,一起讨论怎么给李晓明过生日,过了好几个课间他们才想出来怎么给李晓明过生日。同学们按部就班,等了好几天,终于等到了李晓明过生日那一天,同学早早的来到班里给教室装饰,大家分工明确。有的吹气球,有的画板报,有的摆桌椅,有的扫地,有的拖地,没过多会儿教室就变的又干净又整齐又漂亮。过了很长时间,李晓明出现在教室门口,明显看出今天并未有什么让他高兴的事情,但是当他走进教室的时候,他惊呆了,眼前的一切让他很惊讶,这时他听到大家对他说生日快乐,并且看到教室如此的漂亮,他的眼眶湿润了。老师给蛋糕上点上了蜡烛,让李晓明许了愿,这时下课铃响起了。李晓明觉得今天是最有意义的生日。2023-06-10 00:52:373