c语言之重复声明变量
一般来说,在c语言中不能重复声明变量。然而把它放在了循环里面,编译并不会报错。
毫不知情的我以为每次循环声明变量都是一个新的变量,有不同的地址,然而。。。
写了段代码可以说明这个问题。
#include<stdio.h>
#include<stdlib.h>
int main(){
int *p2[2] ;
for(int i = 0; i< 2; i++){
int a;
scanf("%d", &a);
int * p = &a;
p2[i] = p;
}
for(int i = 0; i< 2; i++){
printf("%d", *p2[i]);
}
return 0;
}
输出结果如下

由此可见, 在c语言循环中写声明变量的语句,编译器只会创建一次。
本文通过一段C语言代码示例,揭示了一个常见的误区:在循环中重复声明的变量实际上只被创建了一次。这与初学者普遍认为的每次循环都会创建新变量的观念相悖,有助于理解C语言中变量作用域和生命周期的概念。
4177





