1、bool _Bool (布尔类型 真 true 假 false ) 1字节
注意:
布尔常量: true false 占 4个字节
布尔类型 要添加 #include<stdbool.h>
2、数据类型的值域范围
signed char -128~127
unsigned char 0~255
unsigned short 0~65535
unsigned int 0~4294967295
unsigned char a = 257; // 0-255
char b = 129 // b =
printf(“a:%hhu\n”,a); //a == 1 //%u —>int %hu half int %hhu half half int
printf(“b:%hhd\n”,b); //b:-127
注意:
1) %u 打印的时候, 值域的范围: unsigned int 0-4294967295
2) %hhu 打印的时候, 值域的范围: unsigned char 0-255
(1)unsigned char a = 255; // 0 - 255
char b = 255; // -128 ~ +127
printf("%d %u\n",a,a); // 255 255
printf("%d %u\n",b,b); // -1 4294967295
(2)unsigned short a = -1; // 0-65535
int b = a; //65535
printf("%d\n",b);// 65535
(3)unsigned char a = -1; //0-255 a—>255
unsigned int b = -1; // 0- 4294967295
printf("%d %u\n",a,b); //a = 255 b =4294967295
3、转义字符
所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加""来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。它告诉编译器需要用特殊的方式进行处理。
'\ddd' ddd表示1到3位八进制数,打印效果为该数字对应的ASCII字符,如: '\34'==>'('
'\xhh' hh表示1到2位十六进制数,打印效果为该数字对应的ASCII字符,如: '\x22' ==>'"'
'\n' 换行
'\t' 横向跳格(Tab)
'\r' 回车,返回行首
'\\' 反斜杠
'%%' %
#include<stdio.h>
int main(int argc,char*argv[])
{
int a;
scanf("%d",&a);
printf("%c\n",a);
return 0;
}
结果
china@ubuntu:/mnt/hgfs/share$ gcc 66.c -o 66
china@ubuntu:/mnt/hgfs/share$ ./66
33
!
注意:041 33 21 !
八进制 十进制 十六进制 ASCII码
这程序只能输入十进制数得出对应的ASCII码
而‘\41’\后面默认八进制和十六进制要想的出!则要输入八进制和十六进制
例
#include<stdio.h>
int main(int argc,char*argv[])
{
int a=’\41’
printf(“a=%c”,a);
return 0;
}