C语言中for循环里的变量i和for循环外的变量i一样吗?为什么?

如题所述

不一样。这是变量作用范围的小知识点。
C语言中,变量分为全局变量,局部问题,临时变量,3类。
全局的好理解,就是在程序的任何地方都可以使用的变量。
局部变量,就是在一定范围内有定义的变量。
临时更好理解了,就是临时使用一下,也是局部变量的一种,不过范围更小,用完就丢弃。
比如 for(int i=0;i<10;i++) {
//{}里这部分是i的作用范围,你可以把i理解成局部的,就是在{}括号里面的是局变量,也可以理解成临时变量。因为i只在for这个循环体内临时使用。

}
int swap(int *a, int *b) {
int t; //这里t的作用范围,就是swap这个函数体,视为局部变量

t = *a; *a=*b;*b=t; //理解成临时变量也可以,因为t的作用,就是交换数据时,临时用一下。
不要纠结临时、局部区别,忘记一个变量是有作用域(作用范围)的就可以了

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-06-05

程序的解释如下(见图)

第2个回答  2022-08-27
是的,每次循环都会重新定义i
第3个回答  2022-08-29
是的,每次循环都会重新定义i
第4个回答  2022-08-28
是的,每次循环都会重新定义i
相似回答