c语言基础—数据类型

来源:互联网 发布:软件行业就业方向 编辑:程序博客网 时间:2024/05/01 01:20

C语言中有四种基本数据类型—整型、浮点型、指针和聚合类型(数组和结构等)。其他类型由此四种派生而成。

 

1、  整数类型

整型包含:字符(char),整型(int),长整型(long)和短整型(short),都分为有符号(signed)和无符号(unsigned)两种。

按位数有short<=int<=long,其中short至少16位,long至少32位。因此虽然直观上会认为short比较短,long比较长,但实际上两者可能一样长,而int的位数则由编译器决定。因此在设计数值计算时,应该确定其位数,做好溢出处理。

字符char占用八位,设计的目的在于容纳字符数据,但本质上是小整型。char在用关键字signed/unsigned修饰的时候与其他几种整型有一个区别。一般,对int,long,short,当不用signed/unsigned修饰时,默认为signed,但char的默认值与编译器有关。

                  下表为不同类型的位数和范围

类型

占用位数

数值范围

char

8位

(一般只用0~127)

signed char

8位

-127~127

unsigned char

8位

0~255

(signed) int

16位或32位

unsigned int

同int

(signed) long (int)

不小于32位

-2147483647~2147483647

unsigned long (int)

同long

0~4294967295

(signed) short (int)

不小于16位

-32767~32767

unsigned short (int)

unsigned short (int)

0~65535

(signed) long long (int)

64位

范围太长

(unsigned) long long (int)

同long long

范围太长

 

一、整型变量的声明和初始化

整型变量的声明形式为: 关键字 变量名;(中间空格隔开)

如:

int a;

初始化则是在声明之后对变量赋初始值

如:

直接int a = 1;

或 int a;a = 1;

最常见的是按十进制赋值,也可按八进制和十六进制赋值,在数字前面加一个0则为八进制赋值,加0x或0X则为十六进制赋值。

当用八进制赋值时,数字不在0~7之间会提示错误,十六进制亦然。

如:

int a = 012;//8进制12,十进制为10。

                  inta = 0x11;//十六进制11,十进制为17。

                  inta = 018;//编译器提示错误。

         计算机通过编码将特定的字符用特定的整数值来表示,一般采用ASCII码。因此对char类型的赋值有两种形式。一种是直接数字赋值,一种是用字符赋值,字符由’ ’括起来。

                  如:

                           chara = ‘A’;

                           chara = 96;//两者都是声明字符变量a,初始化为字符A。

                           chara;a = “X”;//错误,正确方式:a = ‘X’;

        

二、整型常量

当代码中用到如123这样的数字时,编译器以最小可容纳该数值的类型来存储相应数字。也可以通过一些后缀来指定存储类型。L(或小写l)后缀表明数字为long类型,U(或小写u)后缀表明数字为unsigned类型,两者可以组合使用。

如:

                  123U为unsigned int 类型

                  123UL为 unsigned long 类型

                  123ULL为unsigned long long 类型

                  字符常量一般以’单个字符’来表示。

 

2、  浮点型

浮点型包含float,double和long double类型,用来表示不同精度的小数。本文不做讨论。

 

3、  指针

变量的值在计算机的内存中占用一个特定的位置和相应大小的空间。内存与地址一一对应,因此,通过地址就能得到其上变量的值。指针是一种值为地址的数据类型。本文不做详细讨论。

 

4、  格式化输出

Printf()、scanf ()函数时与程序通信的I/O接口。调用printf()通过特定的转换说明符可以打印出相应的数据。

常用转换符:

转换说明

输出

%c

一个字符

%s

字符串

%d

有符号十进制整数

%u

无符号十进制整数

%o

无符号八进制整数

%x或%X

无符号十六进制整数

%p

指针

%f

十进制浮点数

%e或%E

浮点数的e-计数法,E-计数法

 

 

 

修饰符:

修饰符

说明

h

输出short类型。%hd,%hx,%hu分别为十进制short,十六进制short,十进制unsigned short

l

输出long类型。%ld,%lu分别输出 long int和unsigned long int

ll

输出long long类型。%lld,%llu,同上

#

输出进制格式。%#x,%#X,%#o分别输出0x,0X,0这三种进制的前缀

%数字

输出的位宽,%7输出为7位宽,数字向右对齐,数字为负时,相左对齐。

 

原创粉丝点击