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

#include<stdio.h>intcnt,sum;voidcountValue(){intcnt=0;sum=0;sum++;cnt++;}voidmain(){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呢?帮我详细分析下啊,万分感谢 展开
 我来答
喜闵汪又蓝
2020-01-05 · TA获得超过3613个赞
知道大有可为答主
回答量:3076
采纳率:29%
帮助的人:392万
展开全部
只有void
countValue()里的cnt是局部变量,而sum还是全局变量,
而printf里输出的全是全局变量的值(因为局部变量只在countValue函数里其作用,在这个函数里全局变量sum被重新赋值为0,在sum++后,在printf打印出来的就是1了)
你可以把int
cnt=0;sum=0;改成int
cnt=0;int
sum=0;看看,输出的就全是6了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式