#include<stdio.h>
void main(){
char a = 'a'; //字符常量,一个字节
int num; // 为啥要声明变量,为了让编译器知道num 是一个变量,给他分配int的数据空间 4个字节
//char A = "A"; //错误,字符串常量表示字符常量,后面自动加 \0 2个字节 “初始化” : “char”与“char[2]”的间接级别不同
printf("%c",a);
printf("\n%d",sizeof("")); // 输出1,字符串常量后面会自动加 \0
printf("\n%d\n", sizeof("A")); // 输出2,字符串常量后面会自动加 \0
//字符'h'有一下四种输出方式
putchar('h'); //输出h
putchar(104); //输出h 十进制
putchar('\150'); //输出h 八进制
putchar('\x68'); //输出h 16进制
/*
'1' != 1
字符型变量在内存中占一个字节,由于存储的是字符的二进制ASCII码,与整型数据存储方式类似,字符型数据和整型数据可以相互运算。
注意,字符串常量不允许赋值给字符型变量,C语言也没有专门的字符串变量。要在内存中存取字符串,只能使用数组或指针
*/
printf("========================");
//字符特例
char ch1 = '0';
char ch2 = 0;
char ch3 = '\0';
printf("%d, %c\n", ch1, ch1); // '0'ASCII字符对应的字符编号为48,输出48 ‘0’
printf("%d, %c\n", ch2, ch2);// 整数0对应ASCII字符为NULL,也就'\0' 什么都不输出 输出0,
printf("%d, %c\n", ch3, ch3);// '\0'也就是ASCII字符为NULL,即'\0' 什么都不输出 输出0,
getchar();
}