c语言中一个程序有两个不同值的i,是什么情况?

矩形中的i定义的是全部的i吗?
五边形里的i和圆形里的i不是重复定义了吗?
i指的是一个特殊寄存器还是一个存储位置,还是其他有固定位置的什么?
还是因为在执行到第二个for时第一个的i入栈了执行完第二个for后有出栈?

第1个回答  2013-04-21
对,int i;是定义,定义一次下面就可以随便使用,当然需要你自己使这些i的值是有意义的,其他形状里的i都叫使用,不叫定义,i是在内存里的,不是寄存器里。你可以用printf("%d",&i);看到i在内存的位置本回答被提问者和网友采纳
第2个回答  2013-04-21
只有一次定义,在不停地使用而已,按顺序 i ,第一个 定义, 第二个i=0; 这是赋值,第三个是判断,第四个i++是赋值 第五个,是使用,下面的也是这样赋值,判断,定义。
第3个回答  2013-04-21
没有什么冲突的地方,第一个for循环只是完成数组n的初始化,为第二个for循环做准备,因为必须保证n[a],有值,n[a]++才有意义,i这个变量只是用来控制for循环的一个变量,可以被多次初始化
第4个回答  2013-04-21
为了简化程序,所以连续的两次循环使用的都是同一个变量i, 不会出现冲突或者问题.
使用两个变量,下面的第二个for循环使用变量j也是可以的.
相似回答