关于初始化与赋值

时间:2021-10-02 19:47:24
最近看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;
   }

11 个解决方案

#1



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

extern 关键字,外部引用,extern int x;声明引用外部变量x,当你要引用一个全局变量的时候,你就要声明extern int x;这时候extern不能省略,因为省略了,就变成int x;这是一个定义,不是声明。

#2


int a;定义 a的值不定

int a = 0;初始化

a = 100; 赋值

#3


初始化就是在声明(定义)一个变量的时候进行的,如int nA = 1,这个就是对nA进行初始化
赋值是在程序运行的过程中在这个变量的作用域都可以进行,
int nA;
nA = 0;
这里是对nA赋值

extern是应用外部变量,如在a.c文件中定义了变量A,在b.c中也要用到A,则要在b.c中使用extern A;来应用它

#4


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

extern 关键字,外部引用,extern int x;声明引用外部变量x,当你要引用一个全局变量的时候,你就要声明extern int x;这时候extern不能省略,因为省略了,就变成int x;这是一个定义,不是声明。

Up!

#5


extern 声明引用外部变量 extern in x是声明引用外部变量x,不给x分配内存空间,只是一个名字;而int x是定义x,给x分配内存空间

#6


楼上都说得很好了

#7


楼上大家的表述很清楚,申请的时候就写入值的就是初始化,如:int a=100; 。申请的那个语句完了,另起的语句给变量写入的值就是赋值,如:int a; a=100; 这是两个语句。
    extern  表示的是引用外部申请的变量,如果不是外部申请的变量,不能随便用extern。当然在C++中还可以引用 C 的编译方式,这样也可以用extern “C” 。

#8


LS都说了,学习一下。

#9


楼主该结贴了

#10


讲的很清楚了

#11


谢谢大家了,我也明白了

#1



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

extern 关键字,外部引用,extern int x;声明引用外部变量x,当你要引用一个全局变量的时候,你就要声明extern int x;这时候extern不能省略,因为省略了,就变成int x;这是一个定义,不是声明。

#2


int a;定义 a的值不定

int a = 0;初始化

a = 100; 赋值

#3


初始化就是在声明(定义)一个变量的时候进行的,如int nA = 1,这个就是对nA进行初始化
赋值是在程序运行的过程中在这个变量的作用域都可以进行,
int nA;
nA = 0;
这里是对nA赋值

extern是应用外部变量,如在a.c文件中定义了变量A,在b.c中也要用到A,则要在b.c中使用extern A;来应用它

#4


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

extern 关键字,外部引用,extern int x;声明引用外部变量x,当你要引用一个全局变量的时候,你就要声明extern int x;这时候extern不能省略,因为省略了,就变成int x;这是一个定义,不是声明。

Up!

#5


extern 声明引用外部变量 extern in x是声明引用外部变量x,不给x分配内存空间,只是一个名字;而int x是定义x,给x分配内存空间

#6


楼上都说得很好了

#7


楼上大家的表述很清楚,申请的时候就写入值的就是初始化,如:int a=100; 。申请的那个语句完了,另起的语句给变量写入的值就是赋值,如:int a; a=100; 这是两个语句。
    extern  表示的是引用外部申请的变量,如果不是外部申请的变量,不能随便用extern。当然在C++中还可以引用 C 的编译方式,这样也可以用extern “C” 。

#8


LS都说了,学习一下。

#9


楼主该结贴了

#10


讲的很清楚了

#11


谢谢大家了,我也明白了