过去我一直在使用 Visual Studio 2010/2013/2015,这种语法是可能的:
char* szString = "This works!";
我决定继续并改变我对 Linux 编码的生活方式,因为我已经安装了 g++ 并将 SlickEdit 作为我的 IDE。
好像这句话已经不行了。任何人都可以请说明为什么?
但是,这有效:
char strString[] = "This works!";
错误与c ++ 11有关。
有谁知道为什么会这样?不是如何修复它,因为在我的工作区中没有任何方法可以安装 c++11 编译器,我只是好奇它是否与编译器如何工作的背景有关。我对第一行代码的了解是,它在堆栈上创建了一个常量变量并创建了一个新指针,将自己设置为该 ESP 的值,但在第二行中,它计算常量变量上的字母数量,然后最后设置一个空终止符作为结果。
哦,还有一件事 - > 第一个在 GCC/GPP 中设置的方式似乎也有所不同,因为第一个类型是 {char*&} 而第二个是 {char(*)[12] },对此也有任何解释吗?谢谢!