C语言中ACSII码字符单引号'和双引号"在程序中经常出现,很简单,但却是十分重要的语法标点符号,初学者容易混淆使用。
单引号在字符常量时使用,表示单个字符。
例如:
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'表示,空白字符串使用双引号表示 ""
其实做为一个学习者,有一个学习的氛围跟一个交流圈子特别重要这里我推荐一个C/C++基础交流583650410,不管你是小白还是转行人士欢迎入驻,大家一起交流成长。