2017-02-14 42 views
-3

我在理解本声明方面存在问题。我不知道为什么这和其他人不一样。为什么const char INITIAL ='G'不是赋值语句?

+0

related/dupe:http://stackoverflow.com/questions/4470553/initialization-parenthesis-vs-equals-sign – NathanOliver

+2

随着编辑,问题不再有意义。 “在理解这个声明。”哪种说法?你没有收录它。 – Borgleader

+0

http://en.cppreference.com/w/cpp/language/copy_initialization – 0x5453

回答

5

赋值意味着给已经存在的对象赋予新的值。即使const char INITIAL='G';有一个=号,它是而不是一个赋值,因为它是创建一个新的对象,不修改现有的一个。 char INITIAL; INITIAL='G';将是一项任务,因为INITIAL已经存在,当新值很好地分配。

+0

感谢:) :) –

+0

const char INITIAL ='G' 这里这个声明实际上创建INITIAL变量,然后把G放入它。所以这个变量已经存在了。只是一个想法。 –

-1

我的概念所说的是每当有一个=表示它的任务。

你的概念错了。这是一个初始化声明。这与说:

const char INITIAL('G'); 
+0

我的意思是分配不是初始化。 –

+0

正如我所说,这不是一项任务。 –

+0

lol你的意思是const char INITIAL ='G';是一个初始化语句而不是赋值。你认为它被要求达到这个目的? –

相关问题