字符常量
- 定义:用单引号括起来的单个普通字符或转义字符。
- 字符常量的值:该字符的ASCII码值。
- 转义字符:反斜线后面跟一个字符或一个代码值表示。
转义字符 | 含义 | 转义字符 | 含义 |
---|---|---|---|
\n | 换行 | \t | 水平制表 |
\v | 垂直制表 | \b | 退格 |
\r | 回车 | \f | 换页 |
\a | 响铃 | \ | 反斜线 |
\ ’ | 单引号 | \" | 双引号 |
\ddd | 3位8进制代表的字符 | \xhh | 2位16进制代表的字符 |
字符常量所占的字节数
#include<stdio.h>
int main()
{
char ch='A';
wchar_t wch=L'B';
printf("%d,%d",sizeof('A'),sizeof('B'));
return 0;
}
编译结果:
在C语言中,根据C99标准的规定,'A’叫做整型字符常量(integer character constant),为int型,故结果是4(对于32位机器)
字符串常量
- 定义:用双引号括起来的字符序列
如:“hello,world” “A” - 存储:
每个字符串结尾自动加个’\0’作为字符串结束标志
h | e | l | l | o | , | w | o | r | l | d | \0 |
---|
- 注意
字符常量和字符串常量是两个不同的概念 - 字符常量与字符串常量的不同
例 ‘a’ = a ; “a” = a\0 - 字符串不可作用于单个字符
错误写法:
char ch;
ch=“a”;
正确写法:
char ch;
ch=‘a’;
字符型数据
- 字符’1’和整数1是不同的概念;
- 字符’1’知识代表一个形状为’1’的符号,在需要时按原样输出,在内存中以ASCII码形式存储,占1个字节
- 整数1是以整数存储方式(二进制补码方式)存储的,占2个或4个字节
#include<stdio.h>
int main()
{
char ch='1';
int num=1;
printf("%d,%d",sizeof('ch'),sizeof('num'));
printf("\n%d",ch); //字符按照证书打印,即打印该字符的ASCII码值
printf("\n%c",ch); //字符按照字符打印字符
printf("\n%d",num); //整数
return 0;
}
编译结果
由此可以看出字符’1’和整数1,从所占字节数和内存中存储方式是完全不同的。