为了账号安全,请及时绑定邮箱和手机立即绑定

2--数据类型

标签:
数据结构

C语言数据类型:分为基本类型,构造类型和 空类型。

webp

我们一个一个来看

基本数据类型: 

        C语言中最小数据单元,也可以说是原子数据类型,而其他数据类型(如结构体、共用体等)都可以使用这些基本类型。

1、 整型变量:

        整型变量包括短整型(short int)、整型(int)和长整型(long int),它们都分为有符号(signed)和无符号(unsigned)两种,在内存中都是以二进制的形式存放的。每种类型的整数占有一定大小的地址空间,因此它们所能表示的数值范围也有所限制。 在这里需要注意一下,在不同的计算机操作系统,所占的位(bit)有可能是不同的。

下列是整型在32位机中占的位( 图中[]里的内容不用写 ):

webp

 声明并初始化: int   i=10; 长整型: long int i=10;  无符号长整形 :unsigned long  int i=10(不能赋值负数)。

2、浮点型:

浮点变量又可分为单精度(float)、双精度(double)和长双精度(long double)。

下列是 float 在32位机中占的位:

webp

单精度(float):数据长度为4个字节,小数点两边共能显示7位有效数(00.00002)。

声明:float 变量名。例:float    f; 声明并初始化float   f=0.0001。

双精度(double):数据长度为8个字节,小数点两边共能显示16位有效数字(0000.000000000002)。声明一样。

注意:如果要把 float 浮点型和浮点型常量比较时,要在浮点型常量末尾加上f,不然会被系统当成double型。例:float  f=1.1111 ; if(f==1.1111){ };这个if是不成立的,要写成if(f==1.1111f)。

3、字符型:

        标识符为“char”,一般占用一个字节(8bit),有符号(signed)和无符号(unsigned)两种。

下列是 char 在32位机中占的位( 图中[]里的内容不用写 ):

webp

字符型在计算机中是使用ASCll码值储存,所以实际上他和范围内的整形,还有其他进制是一样的。比如 char c='A',char c=65,char c=0x41,都可以表示“A”。

字符常量 是指用单引号括起来的一个字符,如’a’、’D’、’+’、’?’等都是字符常量。以下是使用字符常量时容易出错的地方,请读者仔细阅读。

 ① 字符常量只能用单引号括起来,不能用双引号或其他括号。

② 字符常量只能是单个字符,不能是字符串。

 ③ 字符可以是字符集中任意字符。但数字被定义为字符型之后就不能参与数值运算。如‘5’和5是不同的。‘5’是字符常量,不能直接参与运算,而只能以其ASCII码值(053)来参与运算。

C语言中还存在一种特殊的字符常量——转义字符,具有特殊含义。

webp

可以在函数printf()中使用,例:printf ("\n");就是换行。可以和其他字符一起输出,printf ("abc \n def \n");这样一共有三行,光标在第三行。

4、枚举型:

        在在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内有七天,一年有十二个月。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。为此,C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。

 定义:enum 枚举名 { 枚举值表 }; 例:enum week{ Mon, Tues, Wed, Thurs, Fri, Sat, Sun };这里是表示一周中的七天,Mon=0,自增.....Sun =6,也可以这样enum week{ Mon = 1, Tues = 2, Wed = 3, Thurs = 4, Fri = 5, Sat = 6, Sun = 7 };  或 enum week{ Mon = 1, Tues, Wed, Thurs, Fri, Sat, Sun }; 这两种写法的值是一样的。

定义枚举变量:enum 枚举名 枚举变量名,例:enum week a, b, c;或enum week{ Mon = 1, Tues, Wed, Thurs, Fri, Sat, Sun } day;  使用时可以将枚举值表成员直接进行读写,:例:if (day==Mon ) {}; day=Mon;

枚举特点 :

(1) 枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号,隔开。

(2) DAY是一个标识符,可以看成这个集合的名字,是一个可选项,即是可有可无的项。

 (3) 第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1。

 (4) 可以人为设定枚举成员的值,从而自定义某个范围内的整数。

(5) 枚举型是预处理指令#define的替代。

 (6) 类型定义以分号;结束。

5、指针型:

        标示符是“ * ”,利用指针变量可以表示各种数据结构,能很方便地使用数组和字符串,并能像汇编语言一样处理内存地址,从而编出精练而高效的程序。指针极大地丰富了C语言的功能。

        简单地说,指针就是地址。在计算机中,所有的数据都是存放在存储器中的。比如int 占4个内存地址,char占一个内存地址。

定义:<数据类型>  *<变量名> 例:int  *i;定义多个:int  *a,*b,*c;每个变量名前都要加“ * ”。

使用时要注意,是使用指针的地址还是值,int  *p=i, p只能代表变量的地址。*p代表 p地址 的值 。我们举例说明:

1、int  *p;int  i=10;p=&i;这里是将 i 的地址赋给 p,如果写成p=i 就会报错。

2、int i=10;int  *p=i;这里是将 i 的地址赋给 p,注意初始化时,将变量地址赋给指针不用写地址符“ & ”。

3、int i=10;int *p=i;*p=20; 这里是将 i 的值改成了20。



作者:_刘二哥
链接:https://www.jianshu.com/p/f69bc2dff001


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消