靓丽时尚馆

位置:首页 > 健康生活 > 心理

C语言数据类型规则

心理4.3K
C语言数据类型规则

一、基本数据类型1. 基本数据类型的分类:

C语言中的三种基本数据类型是:整型 、实型 、字符型 。每种类型又可以分为常量和变量。

整型常量:(1) 十进制的整型常量:由数字0~9组成。如:0、10、365、-12等。

(2)八进制的整型常量:以0开头,由数字0~7组成。如:0、010、0365、-012、011等。

(3)十六进制的整型常量:以0x或0X开头,由数字0~9、a~z或A~Z组成。如:0x11、0Xffff、0xa5、-0XAC等。

注: C语言系统默认为基本整型常量 。(关于“基本整型”,请参考下面的内容)

整型变量:(1) 根据整数的最高位是否用作符号位,分为有符号(signed)整型和无符号(unsigned)整型。

(2)根据整数在计算机内存中所占用的空间大小,分为短整型(short int或short)、基本整型(int)和长整型(long int或long)。

short x = 10等价于 signed short x = 10 同时等价于signed short int x = 10

int age = 20 等价于signed int age = 20

long z = 10000L (加L后说明10000是一个长整型常量,而不是一个基本整型常量)

注:(1) C语言系统默认为有符号 整数。

(2) unsigned和signed不能同时出现。

(3) short和long不能同时出现。

实型常量:在C语言中,实型常量的两种表现形式:小数形式和指数形式。或者叫做小数点式和字母E(或e)式。

(1)小数点式:

1、有且仅有一个小数点

2、小数点的左边和右边可以有一边没有数据,但不能同时没有数据

举例:3.14、0.1、10.、0.0、.0、-10.08

(2) 字母E(或e)式:

1、有且仅有一个字母E(或e)

2、 两边都必须有数据

3、左边可以是整数,也可以是小数

4、右边只能是整数

举例:1e5、1.2E+4、3.0e-2、0e0、1.e0、.0e0

实型变量:分为单精度和双精度两种,单精度用float表示,双精度用double表示。字符型常量:字符型常量的两种表现形式:

(1)由一对单引号括起来的单个字符:

#include

void main()

{undefined

//这里只能把字符'c'接收进去,注意编译时候的警告 ,这个应该和具体的机器有关

//x86是小端存储的,ppc是大端的

//ppc中应该是把a接收进去

char c = 'abc'

printf("%cn" ,c)

}

(2) 由一对单引号括起来的,里面是由反斜杠“”引起的若干字符:

1、一般转义字符,如:'nƈ. "”与其后的1~3位 八进制数组成的八进制转义字符,如:飓'、''、ཹ'、颽'

3、 "x”与其后的1~2位 十六进制数组成的十六进制转义字符,如:'x41'、'x61'、'x7F'。注意: 不能是大写的“X”。

字符型变量:注:字符变量中存放的实际上是该字符的ASCII码,因为字符型数据都被处理成整型数据。

2、 举例与注意事项:(1) unsigned:为无符号类型,只能表示大于或等于0的数。

signed:为带符号类型,可以表示正数、负数和0。

(2) 32位机上,int与long的字长相同,均为4字节。

(3)以下程序的输出结果是多少

#include

void main()

{undefined

unsigned short x = 100000 //这条语句在编译的时候会有警告,大整数被隐式转换成无符号类型

unsigned int y = 100000

int m = 034

printf("hex :%x %xndec:%d %d %dn" ,x ,y ,x ,y,m)

}

结果:

hex : 86a0 186A0

dec: 34464 100000

注解 :unsigned short占两个字节,编译器对二进制表示截取低16位,相当于对65536求余(%),得34464 。

(4) 解释以下字面值常量:

'a':char型字面值 L'a':wchar_t型字面值

"a":字符串字面值 L"a":宽字符串字面值

10:int型字面值 10L:long型字面值

10u:unsigned型字面值 10uL:unsigned long型字面值

012:八进制表示的int型字面值 0xC:十六进制表示的int型字面值

3、14:为double型字面值 3.14f:为float型字面值

3、14L:为long double型字面值

-10.:为double型字面值 -10e-2:为double型字面值

-10u:unsigned int型字面值 -10:int型字面值

非法常量:3.14UL、1024f

二、标识符

1、 标识符的规则和分类

(1) 标识符的命名规则:

1)只能由字母、数字和下划线组成 2)第一个字符不能是数字 3)区分大小写,如:int与Int是两个不同的标识符。 4)尽量做到见名知义,如:int age = 10 (2) 分类: 1)关键字。如:int、float、double、auto等。 2)预定义标识符。包括函数名和预处理命令名。如:printf、scanf、main、sin、include、define等。 3)用户标识符。不能使用关键字,可以使用预定义标识符。如:int printf = 0 int weight = 68等。

C语言数据类型转换基本规则

程序语句和表达式通常应该只使用一种类型的变量和常量,但是如果混合使用类型

C使用一个规则集合来完成数据类型的自动转换。

以下是一些C数据类型转换的基本规则:

1.当出现在表达式中时,有符号和无符号的char和short类型都将自动转换为int。

2.在包含两种数据类型的任何运算中,较低级别类型将会转为运算中另一个较高级别的数据类型。

3.数据类型级别从高到低的顺序是long double、double、float、usigned long long、long long unsigned long、long、 unsigned int、int一个可能的例外是当long和int具有相同大小时,unsigned int级别高于long,short和char由规则1被提升到int。

4.在赋值语句中,计算结果将被转换为要被赋值的那个变量的类型,这个过程可能导致级别提升(被赋值的类型级别高)或者降级(被赋值的类型级别低),提升通常是一个平滑无损的过程,然而降级可能导致真正的问题。

5.作为函数的参数被传递时,char和short会被转为int,float转为double,但可以通过函数原型的指定阻止自动提升的发生