A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Jr_711 高级黑马   /  2014-8-7 21:06  /  1328 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Jr_711 于 2014-8-10 10:22 编辑

教材中讲到
  1. extern int a;
  2. int main(){
  3.      a = 10;
  4.      return 0;
  5. }
  6. int a;
复制代码
不能省略最后一行的定义,只留下第1行的声明,因为extern是用来声明一个已经定义过的变量。

意思是说  extern int a;   只是声明变量没有定义么?

去掉第一行的 extern 和最后一行的 int a; ,应该也能运行啊


加个extern就只是声明了么?


5 个回复

倒序浏览
貌似是这样,只是声明,无法直接使用,需要再定义才可以,或者直接写成 extern int a = 10;
回复 使用道具 举报
本帖最后由 寇亮 于 2014-8-7 23:16 编辑

对于位于全局变量定义点之前的函数,通过extern声明可以使变量的作用域向前扩充。
回复 使用道具 举报
视频中有详细讲解
回复 使用道具 举报

恩  又看了看视频,上次没注意,老师一句话带过了。
回复 使用道具 举报
从今以后 发表于 2014-8-7 22:04
貌似是这样,只是声明,无法直接使用,需要再定义才可以,或者直接写成 extern int a = 10;  ...

学习了~~~也没想到声明时候直接赋值
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马