一、字符常量

#include<stdio.h>
int main()
{
printf("HelloWorld");//HelloWorld是字符串,是由字符组成的
return 0;
}

1.字符常量是由单引号包括

‘a' 'b' 'c' '1' '2' '3'都是字符常量
字符常量通常只有一个字符
多个字符用字符串表示

2.如何用单个字符输出HelloWorld?

//错误示范
#include<stdio.h>
int main()
{
printf("H");
printf("e");
printf("l");
printf("l");
printf("l");
printf("o");
printf("W");
printf("o");
printf("r");
printf("l");
printf("d");
return 0;
}//用双引号包括的仍然是字符串

那么直接改成单引号可以吗?

不行,编译会报错。

因为printf的第一个参数必须是字符串。

#include<stdio.h>
int main()
{
printf("%c%c%c%c%c%c%c%c%c%c",'H','e','l','l','o','W','o','r','l','d');
}
//占位符:整数类型%d,浮点类型%f,字符类型%c

运行结果:

【C语言_4】字符类型常量与变量_字符常量

3.字符类型占用字节

//用c编译器运行;将字符常量看作
#include<stdio.h>
int main()
{
printf("a=%d\n", sizeof('a'));
printf("b=%d\n", sizeof('b'));
printf("c=%d\n", sizeof('c'));
return 0;
}

运行结果:

【C语言_4】字符类型常量与变量_字符变量_02

//用c++编译器运行
#include<stdio.h>
int main()
{
printf("a=%d\n", sizeof('a'));
printf("b=%d\n", sizeof('b'));
printf("c=%d\n", sizeof('c'));
return 0;
}

运行结果:

【C语言_4】字符类型常量与变量_ASCII_03

二、字符变量

1.字符变量占用字节

#include<stdio.h>
int main()
{
char n='A';
printf("char=%d\n",sizeof(char));
printf("n=%d\n",sizeof(n));
return 0;
}

运行结果:

【C语言_4】字符类型常量与变量_字符变量_04

三、整数与字符关系

#include<stdio.h>
int main()
{
printf("%d %d %d",'a','b','c');
//s使用整型占位符进行打印
return 0;
}

运行结果:

【C语言_4】字符类型常量与变量_ASCII_05

1.字符类型是整型类型?

是的,因为字符型变量在内存中是用ASCII值保存的,也就是说是以整型形式保存的。ASCII表有128个字符,所以只要一个字节就可以表示所有的ASCII字符了。所以字符型变量占1个字节的空间。

2.ASCII

【C语言_4】字符类型常量与变量_字符常量_06

图片来自百度

3.例题

定义一个字符变量letter,将其初始化为大写字母A,通过ASCII中的关系,将大写字母A,转化为小写字母a,并将小写字母a打印出来。

#include<stdio.h>
int main()
{
char letter='A';
letter=letter+32;
printf("%c",letter);
return 0;
}

运行结果:

【C语言_4】字符类型常量与变量_字符常量_07