唠嗑
我们知道C语言有变量与常量之分,而数据类型就是对每一个变量或者常量赋予不同的功能,好比每个士兵也有不同的兵种。给量定义一个合适的数据类型才能在不同场景下进行合适的调用,顺利编写程序完成目标任务。
正文
一:不同数据类型介绍
基本类型**
(一)整形
-
基本整形
a.大小:一般占据2或4字节,由编译系统决定。在vc中是占用4字节。
b.数据范围:-32768~32767
c.定义方式:int + 量的名称 -
短整形
a.大小:占用2字节(vc)
b.数据范围:-32768-32767
c.定义方式:short int + 量的名称 -
长整型
a.大小:占用4字节(vc)
b.数据范围:-2e31~2e31-1
c.定义方式:long int + 量的名称 -
双长整形
占用8个字节,一般应用较少
(二)浮点型
- 单精度
a.数据范围:-3.4e38~3.4e38
b.格式:包括场宽,对齐方式,精度
c.定义方式:float + 量的名称
举例
printf(“%-5.2f”,a):表示输出的a是总长度为5,小数点后保留两位有效数字,左对齐(没有“-”默认右对齐)
2.双精
a.数据范围:-1.7e308~1.7e308
b.(同上)
c.定义方式:double + 量的名称
(三)字符型
1.大小:占用一个字节
2.应用范围:任何字符
3.与数值的关系:查阅ascii码表 (‘a’代表数值97)
构造类型
(一)数组
- 一维
1)数值型
a.定义方式:int + 量的名称[数组长度]
b.用法:理解为多个相同类型的数值型量编排了序号成了一个班级
2)字符型
a.定义方式:char +量的名称[数组长度]
b.用法:可以把每个元素单独看待,也可以把元素看成整体,成为字符串
char str[6]={'H’,‘e’,‘l’,‘l’,‘o’};
char str[6]={“Hello”};
- 多维(以二维举例)
1)与一维的区别:
一维:班级-个人
二维:年级-班级-个人
三维:学校-年级-班级-个人
…
2)字符型两种用法
char str[3][6]
a.str[0][5]表示一个元素
b.str[0]表示一个长度为6的一位数组
(二)结构体
1.解释:在一个自己定义的数据类型下,包含了多种不同的基本数据类型
2.为什么要用:比如世界杯一个球队有:名字,赢场数,输场数,平局数,进球数,丢球数。这五个信息都隶属于一直球队,如果一个一个定义则会显得混乱
3.定义方式(在main函数外定义):
struct group
{
char name[10];
int win;
int lose;
int bal;
int in;
int out;};
4.调用方法(在main中)
struct group a;
//这里:struct group是数据类型,a是量的名称
scanf("%s",a.name);
scanf("%d",a.win);
//即可输入a队的名字,赢场数
二:常见误区与注意事项
1.每个类型有自己的数据范围,定义相应变量并赋值时不要超出这个范围(溢出)
2.不同类型运算,低位向高位转
3.整形数据结果取整
a=3/2;
a的结果为1;
4.整型数据的取余方式是“a%b”即可,而浮点型需要用到函数
5.要说明一个字母是字符,要用单引号,即‘a’(不然编译器默认a为一个量)
6.字符数组长度+1;
char str[6]={“hello”} 正确
char str[6]={“helloo”} 错误
//这里系统会在字符串末尾自动加停止符‘\0’
7.数组的首元素序号为0;
int a[5]={1,0,1};
a[1]的值是0,a[0]的值是1;
8.当给数组元素赋值个数少于定义的长度时,剩余元素系统默认值为0;