mxm*_*ins 4 c++ constants assignment-operator
我有一些返回此错误的 C++ 代码:
\n\nerror: assignment of read-only variable \xe2\x80\x98parking\xe2\x80\x99\nRun Code Online (Sandbox Code Playgroud)\n\n代码:
\n\nchar const * const parking= "false";\n\nif (phidgets.value(PHIDGET3V_1) > 1000) {\n parking = "true";\n} \nelse{\n parking = "false";\n}\nRun Code Online (Sandbox Code Playgroud)\n\n此错误是什么意思以及如何修复它?
\n您将停车声明为常量指针。
char const * const parking= "false";
Run Code Online (Sandbox Code Playgroud)
所以它只会指向字符串文字"false"并且可能不会被更改。
还有这个声明
char const * const message = "Value: "+ parking +" ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxy";
Run Code Online (Sandbox Code Playgroud)
是无效的。指针没有加法运算符。
parking已设置为const( char const * const parking = "false"),因此无法修改。
当你parking = "true"这样做时,它会引发编译时错误。
如何重现问题非常简单地说明一下:
\n\n#include <iostream>\nint main(){\n const int j = 5;\n j = 7;\n}\nRun Code Online (Sandbox Code Playgroud)\n\nconst表示恒定,意味着您不允许更改它:
error: assignment of read-only variable \xe2\x80\x98j\xe2\x80\x99\nRun Code Online (Sandbox Code Playgroud)\n