单引号在字符常量时使用,表示单个字符。
例如:
char c;
c = 'a';
c = '1';
c = 'A';
当在单引号中出现两个及以上字符时或没有字符时,编译出错。
例如:
char c = 'aA'; // 编译出错,单引号只能是一个字符
char c = ''; // 单引号中间没有任何字符时,编译出错
双引号在表示字符串常量时使用,可以表示0到多个字符组成的字符串。
char s1[] = "a";
char s2[] = "a1A";
char s3[] = ""; // 双引号中间可以没有任何字符,表示空字符串
单引号和双引号如何在程序中表示和输出自身呢?
和其它特殊字符一样,使用转义方式。
char c1 = ''' ; // 单引号字符
char c2 = '"'; // 双引号字符
同理,字符串中输出引号也是一样,直接使用转义方式表示。
总结:
1.字符常量使用单引号,字符串常量使用双引号表示
2.两者均支持转义字符表示,转义字符形式可以参见之前文章。
[C语言转义字符表]
3.以下几种情况必须区别对待:
- 'A' 表示单个字符大写字母A,占用1个字节空间
- "A" 表示字符串,该字符串只有1个大写字母A组成,占用2个字节空间,每个字符串末尾自动会加上一个空字符 '\0'
- 空字符常量使用转义符号 '\0'表示,空白字符串使用双引号表示 ""