关于变量定义在main函数外边和里面的区别有哪些不同?
#include <stdio.h>
struct st{
int year;
int month;
int day;
}test[3];
int main(()
{
struct st test[3]={{1,2,3},{4,5,6},{7,8,9}};
struct st* p;
p=&test;
int i;
for(i=0;i<3;i++){
printf("p->year=%d,p->month=%d,p->day=%d\n",p->year,p->month,p->day);
p++;
}
return 0;
}
问题1:
红色代码如果放在main函数里面,会提示说重复定义结构体数组,但是放在外面为什么就不会的呢?
问题2:
p=&test;编译的时候会出现警告,但是如果这样p=&test[0]则不会了,为什么? 难道p=&test这样有错误?
[解决办法]
int a=0;//全局变量a
int main()
{
int a=9999;//局部变量a,在这里把全局变量a屏蔽了
printf("%d\n",a);
return 0;
}