C语言全局变量和局部变量问题

#include <stdio.h> int cnt,sum; void countValue() { int cnt=0;sum=0; sum++; cnt++; } void main() { cnt=sum=6; countValue(); printf("满足条件的整数的个数=%d\n",cnt); printf("满足条件的整数的和值=%d\n",sum); } 为什么sum是输出1呢?局部变量和全局变量同名不是输出全局变量吗,那应该是6啊,为什么cnt又不是1呢?帮我详细分析下啊,万分感谢

第1个回答  2020-01-05
只有void
countValue()里的cnt是局部变量,而sum还是全局变量,
而printf里输出的全是全局变量的值(因为局部变量只在countValue函数里其作用,在这个函数里全局变量sum被重新赋值为0,在sum++后,在printf打印出来的就是1了)
你可以把int
cnt=0;sum=0;改成int
cnt=0;int
sum=0;看看,输出的就全是6了

C语言中局部变量和全局变量的不同点和相同点是什么?
在C语言中,局部变量与全局变量在作用域和存储位置上存在显著差异:1. 局部变量仅在定义它们的函数内部有效,其作用域限定在花括号{}之内。这意味着在函数外部,代码无法访问或声明局部变量。2. 全局变量在整个程序范围内都是可见的,从它们定义的位置开始,直到包含它们的源文件结束。这意味着全局变量可...

C语言中的全局变量和局部变量有什么区别?
C#中没有全局变量的概念,可以定义一个common类,通过静态变量来存放所有需要的全局变量,调用的时候通过common来调用即可。调用的时候使用“命名空间.common.属性名”即可,例如 string m_name = common.Name ;common.farray [0, 2] = 0.5 ;...

c语言中局部变量和全局变量的区别是什么
1. 全局变量是在所有函数外部定义的变量,其作用域为整个程序,包括所有.c和.h文件。因此,全局变量对于整个程序来说是可见的。使用全局变量时,应确保其名称清晰易懂,避免名称冲突,并避免在全局作用域中使用大量不必要的变量。2. 局部变量是在特定函数或过程中定义的变量,它们的作用域仅限于定义它们...

C语言中,这个main函数里定义的变量是全局变量还是局部变量?
放在main函数里定义的变量任然是局部变量,全局变量要放在所有函数(包括main)的外部,例如:include <stdio.h>int x,y,z;void year(int a,int b,int c);int main(){ int i,a,b,c; for(i=1;i<=1;i++) { scanf("%d,%d,%d",&a,&b,&c); printf("a=%d\\n",a); printf("b...

C语言问题额
这个程序段考了两个问题,一是全局变量和局部变量,二是static静态局部变量。这个程序段定义了两次a,一个是全局变量,int a=3,一个是局部变量static int a=1。全局变量和局部变量如果定义了同一个变量的话,这个全局变量在局部变量中不起任何作用。也就是说,外部定义的int a=3仅仅指n的值为3,...

全局变量和局部变量有什么区别
C语言中的全局变量和局部变量在程序设计中扮演着不同的角色。全局变量在整个程序执行过程中一直有效,而局部变量则限定在函数内部。从空间角度看,全局变量和局部变量的主要区别在于它们的作用域和存储位置。全局变量在文件开头定义,且只需在首次使用时声明(extern),而局部变量仅在定义它的函数内部有效。

关于C语言全局变量与局部变量的问题.
在括号体里{}定义的是局部变量,它的生命周期是该块结束。局部变量需要自己初始化,并且位于堆栈中。如果用static前缀,如在源文件开头的话是本原文件的全局变量,如果在所有函数前定义不加static的话就是全局变量。 --- 这个静态的非常复杂,静态全局和全局和局部都不一样,静态全局实际上生命周期不同...

局部变量和全局变量的区别
总之,全局变量可以使用,但是全局变量使用时应注意的是尽可能使其名字易于理解。而且不能太短,避免名字空间的污染,避免使用巨大对象的全局变量。在C语言等面向过程语言中,局部变量可以和全局变量重名,但是局部变量会屏蔽全局变量。在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。

c语言中局部变量和全局变量的区别是什么
局部变量:在程序中,只在特定的过程或函数中可以访问的变量,是相对于全局变量而言的。全局变量也称为外部变量,是在函数的外部定义的,它的作用域为从变量定义处开始,到本程序文件的末尾。全局变量全部存放在静态存储区,在程序开始执行时给全局变量分配存储区,程序行完毕就释放。局部变量可以和全局变量...

C语言…外部变量与局部变量同名问题
如果全局变量和局部变量重名,局部变量将覆盖全局变量。所以局部a覆盖全局a main内a = 8 但是全局b你没有重名的,所以,main中b是全局变量b=5 懂?覆盖的只是重名的,不是全部的,懂?

相似回答
大家正在搜