以下哪些不是C++中合法的标识符?为什么?

beginarray[i]
new
_1first
3rd
file_name
end
structperson.name
OK?
_while
_class_
number3.5
希望能把每一个不是合法标识符的原因单独写出来~谢谢~

标识符判断的标准如下:
一、 只能由阿拉伯数字、英文字母和下划线组成。这里注明一下,C++严格区分字母大小写。就是说“a”“A”是两回事。可以这么理解C++里英文字母相当于52个。
二、 阿拉伯数字不能放在首位,你要是看到一串全是数字那这东西肯定不是标识符。
三、 C++的关键字不能作为标识符,关键字就是在电脑上编程过程中呈蓝色的。看到蓝色的就是关键字,你别管形式多么符合,蓝色的全不是标识符。
四、 只有这一条是补充说明的,一个标识符可以不同时包含阿拉伯数字、英文字母和下划线。当然你则全数字是不行的。这一条可以和第一条合并一下,这样可能更简洁。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-02-28

标识符是用于表示以下内容之一的字符序列:

    对象或变量名称

    类、结构或联合名称

    枚举类型名称

    类、结构、联合或枚举的成员

    函数或类成员函数

    typedef 名称

    标签名称

    宏名称

    宏参数

    允许将以下字符用作标识符的任意字符:

    _ a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z  

允许将以下字符用作标识符中除第一个字符以外的任意字符:

0 1 2 3 4 5 6 7 8 9  

new  end  是关键字

3rd  数字不能用在开头

structperson.name  .不行
OK?  ?也不行

number3.5 同样.不行

第2个回答  2013-10-12
变量名只能有数字、字母和下划线构成,且数字不能为开头,,且不能为程序关键字因此以下变量名不合法:
beginarray[i] //含其他字符

3rd //数字开头

end //关键字

structperson.name //含其他字符

OK? //含其他字符

number3.5 //含其他字符
第3个回答  2013-10-12
beginarray[i] structperson.name OK? number3.5 不可以由字母、数字和下画线以外的字符组成
3rd 不能以数字开头
new 关键字不能做标识符本回答被提问者采纳
第4个回答  2013-10-12
new,end好像是关键字吧,不能用
number3.5这样带点的不行吧
3rd不知道行不行,好像也是不行的
第一个带[]好像也不行
其他的应该没有问题,