标题:auto的问题,不太明白!
只看楼主
ycd123
Rank: 1
等 级:新手上路
帖 子:42
专家分:5
注 册:2010-1-6
结帖率:91.67%
已结贴  问题点数:5 回复次数:3 
auto的问题,不太明白!
#include<stdio.h>
main()
{int num1=2;
int i;
for(i=0;i<3;i++)
{printf("\nthe num1=%d",num1);
num1++;
{auto int num2=1;
printf("\nnum2=%d",num2);
num2++;
}
}
printf("\n");
}
运行后为什么num2总是等于1,num1的值能够自加,而num2前面的auto加不加都是一样的,但两者的结果怎么不同。还有在auto前面为什么能够加“{”,不会导致语法错吗?
谁告诉一下,谢谢了。
搜索更多相关主题的帖子: auto 
2010-03-17 21:17
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
得分:3 
{auto int num2=1;
printf("\nnum2=%d",num2);
num2++;
}

很简单么 你每次进去都给num2=1 重新赋值了嘛!

你可以自己实验么
比如
{auto int num2=1;
printf("\nnum2=%d",num2);
num2++;
printf("\nnum2=%d",num2);
}

或者把auto int num2=1;放在for循环外面 你会发现点什么的

[ 本帖最后由 hahayezhe 于 2010-3-17 21:20 编辑 ]
2010-03-17 21:18
mikelr
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:67
专家分:161
注 册:2010-3-17
得分:2 
变量默认都是 auto 所以加不加 auto 没什么区别。

这个和变量的作用域问题相关,你看看关于变量作用域的相关内容
2010-03-17 22:34
csj_65
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:63
专家分:163
注 册:2010-3-12
得分:0 
用static试试
2010-03-18 22:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-299742-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.102913 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved