我是c ++的新手。我在C ++书中找到了以下语句:"在任何C ++程序中,变量名以字母开头,只包含字母,数字和下划线。以下不是变量名:"
2x // a name must start with a letter
time$to$market // $ is not a letter, digit, or underscore
Start menu // space is not a letter, digit, or underscore
问题是为什么time$to$market
不是变量名?
我试图编译它并且编译器没有抱怨,我使用的编译器 QT 中的 MinGW 32bit for c ++ 。但它应该抱怨!
答案 0 :(得分:2)
编译器有不同的变体。可以编译得更快,由于某些原因,可能会因某些默认设置而有所不同。我不知道你正在使用什么编译器。但是,如果你对编译器进行一些研究,你会看到$是允许的。尝试使用不同的编译器进行编译,以准确地了解您的书。检查此主题以查看纯c ++的含义。因为书通常教纯语言。
答案 1 :(得分:0)
我尝试使用它,编译器没有给出错误。
即使您当前的编译器支持它,也不要这样做(正如Quentin在评论中指出的那样)。它不在标准中,因此您的代码将无法移植到其他环境,甚至不能移植到使用不同标准的同一编译器(尝试GCC选项-ansi
,-std=c++11
{{3 }})。可能发生的最好的事情是你在编译时遇到错误,最糟糕的是你将在几小时后打猎的未定义行为。
答案 2 :(得分:-1)
它完全取决于您使用的编译器,因为我在TC 4.5中使用它显示此错误:
编译DEMO.C:
非法角色' $' (0X24)
某些编译器可能会支持它。