C语言中静态局部变量的问题

#include<stdio.h>intmain(){intt,n,i,str[4];scanf("%d",&t);while(t--){scanf("%d",&n);i... #include<stdio.h> int main() { int t,n,i,str[4]; scanf("%d",&t); while(t--) { scanf("%d",&n); int sum=0; while(n--) { int item=0; scanf("%d%d%d%d",&str[1],&str[2],&str[3],&str[4]); if(str[1]<60||str[2]<60||str[3]<60||str[4]<60) item=1; sum+=item; } printf("%d\n",sum); } return 0; } 将其中的item的定义改为static int item;然后输入几组数据后 累加就会出错(多加了) 例如输入1(回车)4(回车)88 88 88 55(回车)88 88 88 59(回车)88 88 88 88(回车)88 55 88 88(回车) 到这里就会输出一个值 没有用static定义的输出的值是3 用static定义的输出的值是4 求解释喔 展开
 我来答
能瑾介哲彦
2020-06-28 · TA获得超过3842个赞
知道大有可为答主
回答量:3102
采纳率:30%
帮助的人:377万
展开全部
静态局部变量相当于全局变量(只是只有在这个函数中能访问,但是生命周期是和全局变量差不多的),函数退出之后变量还在,而且只在第一次进入的时候做初始化,以后会跳过初始化语句,保留原来的值(也就是说,如果item是static的,那么只有在第一次进入这个函数的时候会执行item=0,以后都不会执行。)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式