欢迎关注个人公众号“老余笔记”,也能够访问个人我的博客www.yuxiaoshao.cn
有须要的能够qq交流学习1316677086 或者加入个人群里交流:901648700 一块儿分享资源,交流学习数组
数据类型就是用来声明不一样类型的变量或函数的一个普遍的系统。变量的类型决定了变量存储在内存中占用的空间。函数
数据类型分为
基本数据类型/算数类型:数值类型(整数类型,浮点型),字符型char
构造数据类型:数组、结构体、共用体、枚举
指针类型
void类型(空类型)void学习
咱们经常使用的数字有整数和小数。因此基本数据类型类型又分为了整数类型即整型(固然这里的整型不是韩国的整形)和浮点类型即浮点型;指针
注意,各类类型的存储大小与系统位数有关,但目前通用的以64位系统为主。code
数据类型 | 占用大小 |
---|---|
short 短整型 | 2 字节 取值范围:-32,768 到 32,767 |
int 整型 【经常使用】 | 2或4个字节(通常都占用2个字节) 取值范围:-32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647 |
long 长整型 | 4 字节 取值范围:-2,147,483,648 到 2,147,483,647 |
其实char也是int类型,在计算机中,字符也是经过对照ACILL表的int数值转换的。
想知道ACILL表是啥本身百度对象
数据类型 | 占用大小 |
---|---|
char 字符型【经常使用】 | 1字节 取值范围:(-128 到 127 或 0 到 255) |
由于-128 到 127 或 0 到 255也在int【-32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647 】的取值范围以内,因此在小于127大于-128的范围里的时候 int能够和char类型相互转换对应的字符blog
数据类型 | 占用大小 |
---|---|
float 单精度浮点 【经常使用】 | 4 字节 取值范围(1.2E-38 到 3.4E+38 )6 位小数 |
double 双精度浮点 【经常使用】 | 8 字节 取值范围 (2.3E-308 到 1.7E+308 )15 位小数 |
long double | 16 字节 取值范围(3.4E-4932 到 1.1E+4932 )19 位小数 |
使用sizefof运算符图片
#include <stdio.h> #include <limits.h> int main() { //表达式 sizeof(type) 获得对象或类型的存储字节大小。 printf("int 存储大小 : %lu \n", sizeof(int)); //%lu 为 32 位无符号整数 return 0; }
C 语言中若是一个表达式中含有不一样类型的常量和变量,在计算时,会将它们自动转换为同一种类型;内存
int i = 5.5; /*这里的5.5默认是double类型, 经过C的自动转换机制,会摄取掉小数部分,只保留整数部分*/
自动转换规则:
浮点数赋给整型,该浮点数小数被舍去; 例:int a = 1.2; //这里的.2会被舍去 只会保留整数部分
整数赋给浮点型,数值不变,可是被存储到相应的浮点型变量中; 例 float b = 5; //这里的 5 会被转换成5.0 做为浮点型存储在内存里资源
使用(),在括号里填写须要转换的类型
使用基本数据类型的时候注意,从大范围强制转换为小范围会存在内存溢出的现象
#include <stdio.h> int main () { float f,x=3.6,y=5.2; int i=4,a,b; a=x+y; b=(int)(x+y);//(x+y)是浮点型 这里会强制转换为int型 f=10/i; printf("a=%d,b=%d,f=%f,x=%f\n",a,b,f,x); return 0 ; }
在C语言里,是没有bool类型的,因此 C 语言判断真假时以 0 为假,非 0 为真(通常用1)。
C99 提供了 _Bool 型,因此布尔类型能够声明为 _Bool flag。
_Bool 依然还是整数类型,但与通常整型不一样的是,_Bool 变量只能赋值为 0 或 1,非 0 的值都会被存储为 1。
C99还提供了一个头文件 <stdbool.h> 定义了 bool 表明 _Bool,true 表明 1,false 表明 0。
只要导入 stdbool.h ,就能很是方便的操做布尔类型了
#include <stdio.h> //导入 stdbool.h 来使用布尔类型 #include <stdbool.h> //计算n!,n的值在main中定义 int main () { int n = 10; //计算叠乘数 int sum = 1; //用来存放叠乘的结果 bool flag = false; //叠乘标记 int num = n; //循环次数 while( !flag ) { sum = sum * (num--); //当num=1时结束循环 if( num == 1) { flag = true; } } printf ("%d的叠乘值为 %d \n", n, sum); return 0; }