首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于初始化与赋值,该怎么处理

2013-01-01 
关于初始化与赋值最近看c++,有几点搞不懂,希望大神解答一(1).初始化和赋值不都是往内存里存东西吗,不同在

关于初始化与赋值
最近看c++,有几点搞不懂,希望大神解答
一(1).初始化和赋值不都是往内存里存东西吗,不同在哪里?
  (2).是不是第一次往内存里存东西就叫初始化?那么下面的语句是初始化还是赋值?
   int a;
   a=1024;
二(1).为什么在main函数里这样定义extern int x=12;会提示“不能对带有块范围的的变量进行初始化”?什么叫带有块范围?                        (2).c++primer 50页不是说非const变量默认为extern吗?那么我加上extern有什么错?
   int main()
   {
     extern int x=12;
   }
[解决办法]

 这句 int a;只是定义 并不是初始化  int a = 0; 这才是初始化, 顾名思义 就是初次使用为该变量赋值。
而a = 1024; 就是赋值。

extern 关键字,外部引用,extern int x;声明引用外部变量x,当你要引用一个全局变量的时候,你就要声明extern int x;这时候extern不能省略,因为省略了,就变成int x;这是一个定义,不是声明。
[解决办法]
初始化就是在声明(定义)一个变量的时候进行的,如int nA = 1,这个就是对nA进行初始化
赋值是在程序运行的过程中在这个变量的作用域都可以进行,
int nA;
nA = 0;
这里是对nA赋值

extern是应用外部变量,如在a.c文件中定义了变量A,在b.c中也要用到A,则要在b.c中使用extern A;来应用它
[解决办法]
楼上大家的表述很清楚,申请的时候就写入值的就是初始化,如:int a=100; 。申请的那个语句完了,另起的语句给变量写入的值就是赋值,如:int a; a=100; 这是两个语句。
    extern  表示的是引用外部申请的变量,如果不是外部申请的变量,不能随便用extern。当然在C++中还可以引用 C 的编译方式,这样也可以用extern “C” 。

热点排行