最近我的一位朋友在接受采访时遇到了这个问题。面试官问他,像$, @, |, ^, ~
这样的特殊字符是否在c或c ++中有任何用法。
我知道|, ^ and ~
分别用作按位OR,XOR和补码。
但我不知道@ and $
是否有任何特殊含义。如果确实如此,请举例说明可以应用的地方吗?
答案 0 :(得分:26)
@
在C中通常无效;它不用于任何东西。它被Objective-C用于各种目的,但它是另一个鱼的水壶。
$
也是无效的,但许多实现允许它出现在标识符中,就像字母一样。 (例如,在这些实现中,如果您愿意,可以命名变量或函数$$$
。)即使在那里,它也没有任何特殊含义。
答案 1 :(得分:8)
答案 2 :(得分:6)
完成其他答案。 5.2.1.3中的C99标准:
基本源和基本执行字符集都应具有 以下成员:
拉丁字母的26个大写字母
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
拉丁字母的26个小写字母
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
10位小数
0 1 2 3 4 5 6 7 8 9
以下29个图形字符
! " # % & ' ( ) * + , - . / :
; < = > ? [ \ ] ^ _ { | } ~
所有其他角色甚至可能都不存在。 (不应该使用)
但共同扩展中也有这一点:附件J,J.5.2:
下划线_,字母和数字以外的字符,它们不是基本字母的一部分 源字符集(例如美元符号$或国家字符集中的字符) 可能出现在标识符(6.4.2)中。
这基本上就是duskwuff已写的内容。