"hello"和{"hello"}有什么区别?

yej*_*xin 7 c c++ pointers initialization

在C/C++中,以下两行代码之间的区别是什么:

char *str1="hello";  
char *str2={"hello"};  
Run Code Online (Sandbox Code Playgroud)

Eri*_*hil 10

根据2011 C标准,第6.7.9条初始化,第11段:"标量的初始化器应为单个表达式,可选择用括号括起来......"

这就对了.没有语义差异; 大括号可能只是存在或可能不存在,而且意义没有变化.


Dav*_*men 6

仅在这种情况下风格.它们都会导致同样的事情,而且它们都是糟糕的形式.你应该用过const char * str1="hello";.