C++关于初始化与赋值
最近看c++,有几点搞不懂,希望大神解答一(1).初始化和赋值不都是往内存里存东西吗,不同在哪里?(2).是不是第一次往内存里存东西就叫初始化?那么下面的语句是初始化还是...
最近看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;
} 展开
一(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;
} 展开
3个回答
展开全部
1.初试化和赋值对于内置类型来说,几乎可以不加以区分;但对于类类型来说,对于一个类型的初始化是通过构造函数来实现,而赋值需要重载赋值操作符等;在以后的学习中,你会明白的。至于你举的这个例子,其实是一个赋值~
2.第二个问题你是不是应该将这个定义置于main函数体外呀~使用extern关键字的目的是为了让其他文件能够使用定义的变量,这必然是作为一个全局变量,而在main内部声明的话,相当于把局部变量供外部文件使用,这个是不允许的~你可以改个试试!
2.第二个问题你是不是应该将这个定义置于main函数体外呀~使用extern关键字的目的是为了让其他文件能够使用定义的变量,这必然是作为一个全局变量,而在main内部声明的话,相当于把局部变量供外部文件使用,这个是不允许的~你可以改个试试!
2012-10-24
展开全部
1~我的理解是对于基本类型的变量来说,初始化就是第一次赋值。而如果是类的对象,那么初始化就要调用构造函数来进行,而后的赋值,则调用相应的函数来。
2~如1楼所说,extern你就写在程序的第一行就好了。既然是全局变量,我觉得那就不要写在某一区块里啦~
2~如1楼所说,extern你就写在程序的第一行就好了。既然是全局变量,我觉得那就不要写在某一区块里啦~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
赋值不一定要在内存中进行,初始化一般都在
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询