嵌入式学习之路(八)——C语言学习(3)
1.今天我们来讲讲char类型的数据,字符类型由256个不同的字符构成,例如'a','+'....每个字符数据有一个对应的整数数字,也就是说每个字符数据有两个不同的身份,分别是字符和数字,那他们之间有什么样的关系呢?
2.ASCII码表列出字符和数字之间的对应关系
1.'a' --- 97
2.'A' --- 65
3.'0' --- 48
1.'a' --- 97
2.'A' --- 65
3.'0' --- 48
总共128个,数字身份从0到127都有对应的字符
当然还有很多,大家可以自己去看ASCII表哦
下面大家来看一下下面这段代码,看看输出都是什么呢?
#include<stdio.h>
2 int main()
3 {
4 char ch = 65;
5 printf("65 = %c\n",ch);
6 ch = 'a';
7 printf("a = %d\n",ch);
8 ch = -191;
9 printf("-191 = %d\n",ch);
10 printf("-191 = %c\n",ch);
11 return 0;
12 }
2 int main()
3 {
4 char ch = 65;
5 printf("65 = %c\n",ch);
6 ch = 'a';
7 printf("a = %d\n",ch);
8 ch = -191;
9 printf("-191 = %d\n",ch);
10 printf("-191 = %c\n",ch);
11 return 0;
12 }
马上揭晓答案:
65 = A
a = 97
-191 = 65
-191 = A
a = 97
-191 = 65
-191 = A
这答案是不是印额证了上面所对应的ASCII码表的内容呢,但是细心的大家会发现,-191为什么打出来也是大A呢,我们来分析一下:开个玩笑,这个后面会分析的,呵呵,大家现在只要知道前面的就行咯
3.还有一种字符类型叫做无符号字符型,unsigned char ch;他的数字身份是从0到255。
4.还有一种字符叫做转义字符,如下所示:
1.'\r'回车符的作用,把位置回到开头
2.'\n'换行符
3.'\t'制表符
4.'\\'表示一个\
5.'\''表示'
6.'\"'表示"
2.'\n'换行符
3.'\t'制表符
4.'\\'表示一个\
5.'\''表示'
6.'\"'表示"
5.短整数类型用short表示,有两个字节,这个类型一共包括2的16次方(65536)个不同的整数,范围从-32768到32767
无符号短整数类型用unsiged shor 表示,从0到65535
无符号短整数类型用unsiged shor 表示,从0到65535
6.整数类型用int表示,有四个字节,这个类型一共包含2的32次方个不同的整数,范围从-2的31次方到2的31次方-1
无符号的整型数据类型用unsigned int表示,也是有2的32次方不同的整数,范围从0到2的32次方-1
7.在我们的计算机中长整型和整型数据类型完全一样
8.浮点类型用来表示带小数点的数字,分为单精度浮点数,和双精度浮点数
单精度浮点类型用float表示,双精度浮点类型用double表示,
单精度浮点类型用float表示,双精度浮点类型用double表示,
程序中没有特别说明类型的浮点数默认为double
9.在程序加u表示这个数字类型是无符号整数类型,例如8u
在浮点数后面加f表示这个数字的类型是float,例如5.8f
在浮点数后面加f表示这个数字的类型是float,例如5.8f
10.讲了这么多计算机里的类型,我们接下来罗列一下每个类型的占位符,就是printf和scanf里面用的占位符
1.char ———— %c或%hhd %c对于字符身份,%hhd对应数字身份
2.unsigned char ———— %c或%hhu
3.short ———— %hd
4.unsigned short ———— %hu
5.long ———— %ld
6.unsigned long ———— %lu
7.int ———— %d
8.unsigned int ———— %u
9.float ———— %f或者%g %f会保留小数点后面无效的0 %g不会保留小数点后面无效的0
10.double ———— %lf或者%lg 区别同上
11.%nd ———— 要求打印结果必须占n个位置,默认用空格补
12.%-nd ———— 要求打印结果占n个位置并且从左边的位置开始打印
13.%0nd ———— 用字符0填补空位置
14.%n.mf ———— 表示整数数字占n个位置,其中小数点后面部分占m个位置
2.unsigned char ———— %c或%hhu
3.short ———— %hd
4.unsigned short ———— %hu
5.long ———— %ld
6.unsigned long ———— %lu
7.int ———— %d
8.unsigned int ———— %u
9.float ———— %f或者%g %f会保留小数点后面无效的0 %g不会保留小数点后面无效的0
10.double ———— %lf或者%lg 区别同上
11.%nd ———— 要求打印结果必须占n个位置,默认用空格补
12.%-nd ———— 要求打印结果占n个位置并且从左边的位置开始打印
13.%0nd ———— 用字符0填补空位置
14.%n.mf ———— 表示整数数字占n个位置,其中小数点后面部分占m个位置
11.刚才上面我们描述数据类型的时候,我讲到了字节这个概念,那么什么是字节呢?
内存中所有存储位置的大小是完全一样的,我们把他们称为字节,一个存储位置就是一个字节,一个字节占8位
12.一个变量所对应的存储位置是由多个连续的字节构成的
好了,今天就到这里吧,写太多会视觉疲劳嘛,是不是,再见!