1 .数据类型的介绍
1.1类型的基本归类
基本的数据类型:
char //字符数据类型(整形家族) short //短整型 int //整型 long //长整型 long long //长长(更长的)整型 (c99) float //单精度浮点数 double //双精度浮点数
printf("%d\n", sizeof(char)); //1个字节 printf("%d\n", sizeof(short)); //2个字节 printf("%d\n", sizeof(int)); //4个字节 (32位机器或64位机器)早期为(16位机器)2个 字节 printf("%d\n", sizeof(long)); //4个字节 printf("%d\n", sizeof(long long)); //8个字节 printf("%d\n", sizeof(float)); //4个字节 printf("%d\n", sizeof(double)); //8个字节
这 是 一 些 扩 展 大 家 可 以 看 看
有没有字符串类型呢?
答案是 有的
字符串是字符的序列,基本就是一组单词,是Phthon中常用的数据类型,可以用单引号(' ')和双引号(" ")来定义 (创建)字符串。
//比如可以这样 str = "My name is 9527 "; str1 = 'HELLO WORLD!'; str2 ="""because of you""";//对了也可以用三引号(""" """)和(''' ''') ------------------------------------------------------------ print("%s" % str); //输出为 My name is 9527 print("%s" % str1);//输出为 HELLO WORLD! print("%s" % str2);//输出为 because of you
不同的数据类型内会导致存储时和访问时有不同的差异 比如:浮点型就是一个典例(后面会给大家讲到 嘿嘿)
做点小扩展(摘自 cppreference.com)
- 浮点类型
- 实际浮点类型:float , double ,long double
|
(自 C23 起) |
- 复杂类型:float_Complex,double_Complex,long double_Complex
- 虚数类型:float_Imaginary,double_Imaginary,long double_Imaginary
(自C99起)
可以简单了解一下 嘻嘻嘻
其次就是 布尔类型 (_Bool) 是C语言中专门用来表示 真 / 假 的一种类型(c++中也有哦)
c99标准才开始引入原因是因为 在早期 C语言都是用0表示假 非0为真 后期才开始有了这样
给大家演示一下:
//c99才开始引入 #include <stdio.h> #include <stdbool.h>//这里需要引用头文件 int main() { _Bool flag = true;//true为真false为假 if (flag) { printf("Oh yeah! , you do it!"); } return 0; }
_Bool 没有什么好神奇的 本质是对 int 的一种重命名 你看这就很好的说明了 并且平常我们看到的代码也很少有用到_Bool类型的 即使 c99 中引入了 引用得不是很广泛有些编译器甚至不支持 当然你想用也是可以的 哈哈哈哈
#define bool _Bool #define false 0 //类似于int false = 0; #define true 1//类似于int true = 0;
“ 家族 ”类型
1. 接下来是我们的整型家族
char : unsigned char signed char short : unsigned short //short等价于signed short signed short int: unsigned int //int等价于signed int signed int long: unsigned long //long等价于signed long signed long
char类型 之所以归于整型家族中是因为其字符有与其相对应的 ASCLL码值
对于 char类型 是不一样的 char 到底等不等同于 signed char 是取决于编译器的不同的
但是一般来讲是 等同 的
需要注意 有符号 无符号 在打印是也要求的
//注意:%d 是按照有符号数来打印的 //%u 才是按照无符号来打印的 unsigned int num = -10; printf("%d", num); //打印为 -10 int num1 = -10; printf("%u", num1); //打印出来为4294967286