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语言循环中写声明变量的语句,编译器只会创建一次。