2 therightoforange Therightoforange 于 2015.06.24 12:20 提问

C语言基础 for语句这两者之间的区别

include

int main()
{
int a=1, b=3, c=0;
for (a ; a < b; a++)
c = c + a + a;
printf("c的值为:%d", c);
getchar();
return 0;

}

include

int main()
{
int a, b=3, c=0;
for (a=1 ; a < b; a++)
c = c + a + a;
printf("c的值为:%d", c);
getchar();
return 0;

}

9个回答

Imbyr
Imbyr   Rxr 2015.06.24 12:29

没什么区别,初始化时机不同

Imbyr
Imbyr 回复Therightoforange: 这样变量a的作用域就不同了,看具体的需求而定
大约 2 年之前 回复
Therightoforange
Therightoforange for (int a=1 ; a < b; a++) 这个呢
2 年多之前 回复
u014052750
u014052750   2015.06.24 12:32

没什么不一样,等价的

u012216727
u012216727   Ds   Rxr 2015.06.24 12:46

没什么不同啊,只要能用就行了

u012216727
u012216727 也没区别,你可以这样理解;一个是在没使用的时候就给它定义好,比如定义好它的初始值(1),它的类型(int);而你这在for括号里的就是使用的时候才定义好它需要的什么类型什么初始值的这么一个变量
2 年多之前 回复
Therightoforange
Therightoforange for (int a=1 ; a < b; a++) 这个呢
2 年多之前 回复
geng333abc
geng333abc   2015.06.24 13:09

没区别吧,只不过是a初始化的时间不同,,,for (int a=1 ; a < b; a++) 这个才不一样。。。

Therightoforange
Therightoforange 有什么区别
2 年多之前 回复
polley88
polley88   2015.06.24 13:12

没有不一样的地方,只是初始化的位置不同而已

iFr0zen
iFr0zen   2015.06.24 13:40

for(1;2;3;){
4;
}
1和3都是可以省的

txjzws
txjzws   2015.06.24 16:43

第一个a在定义时就初始化,第二个a在循环开始时初始化,结果没有区别。

kongshuai19900505
kongshuai19900505   2015.06.25 00:57

代码翻译成汇编看下,应该多条指令

zuoyangding
zuoyangding   2015.06.29 06:15

对结果没有任何的影响,只是赋值的先后问题

Csdn user default icon
上传中...
上传图片
插入图片