一道C语言程序题

?~~J 2020-01-07 07:37:21
#include <stdio.h>
int main()
{
extern int a;
int c=3;
printf("extern a=%d\n",a);
{
extern int c;
printf("extern c=%d\n",c);

}
printf("inner c=%d\n",c);
return 0;
}
int a=1;
int c=5;
为什么这个程序可以正常运行呢,(int a=1;int c=5;)明明是在括号{}外面啊,而且在这里明明对于c 已经先定义了,为啥还可以用extern,而且在第一个c的输出里面,输出的还是5
...全文
53 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
?~~J 2020-01-07
  • 打赏
  • 举报
回复
那个为什么,我把int c=5,放到最前面定义,然后把 (extern int c;),去掉了,最后在第一个c的输出的时候也变成3了呢?
?~~J 2020-01-07
  • 打赏
  • 举报
回复
谢谢,我已经明白了
「已注销」 2020-01-07
  • 打赏
  • 举报
回复
你把绿色的花括号去掉就报错了
「已注销」 2020-01-07
  • 打赏
  • 举报
回复

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧