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了
相似回答
大家正在搜