C语言中如何正确打印单引号和双引号(字符常量)
编译器 vc++ 2010
最近对C语言中最基本的字符常量产生了一些疑惑,网上了查了查大家说的不太一样,于是自己专门验证了一下。
一、转义字符的方式
由于单双引号都是ASCII中的特殊字符,首先按照转义字符的定义打印结果如下:
#include<stdio.h>
#include<stdlib.h>
int main()
{
char a = '\'';
char b = '\"';
printf("%c\n%c\n",a,b);
system("pause");
return(0);
}
可见通过加反斜杠成为转义字符的方式可以打印出来单引号和双引号
二、直接用单引号括起来
当双引号用单引号括起来时,此时双引号可以理解是一个普通的字符常量
char b = '"';
printf("%c\n",b);
但是,当单引号应用单引号时,编译会发生错误,系统会认为单引号中为空,而单引号中不能为空(不合法)
总结
双引号可以用转义或单引号括起来的方式打印输出,单引号只能用转义字符来打印。
另外以上方法也可以用来检测其他特殊字符,例如 \ 只能用 ’ \\ '打印
扩展
① 在printf中输出双引号
#include <stdio.h>
int main()
{
printf(" \" school \" ");
return 0;
}
②基本概念
'\ddd’表示的是三个八位制的ASCII的数
'\xdd’表示的是两个十六进制的ASCII的数
通过对应的八位与十六位制ascii表得到它们代表的字符