一般来说,基本数据类型分为整型、浮点型、字符型,C++中又包括布尔型。每种类型里面又可以分为若干种类型(为了方便记忆,只列出常用的)。如下列出了四种基本数据类型。

四种基本数据类型

类型

取值范围

大致范围

整型

int

-2147483648~+2147483648

(即-2^31~+(2^31-1))

-2*10^9~+2*10^9

long long

-2^63~+(2^63-1)

-9*10^18~+9*10^18

浮点型

float

-2^128~+2^128

(实际精度6~7位)

实际精度6~7位

double

-2^1024~+2^1024

(实际精度15~16位)

实际精度15~16位

字符型

char

-128~+127

-128~+127

布尔型

bool

0(false)or 1(true)

0(false)or1(true)

1.整型

整型一般可以分为短整型(short)、整型(int)和长整型( long long),其中短整型(short)一般用不到,此处不再赘述。下面介绍整型(int)和长整型( long long),其中整型int也被称为 long int,长整型 long long也被称为 long long int。

①对整型int来说,一个整数占用32bit,也即4Byte,取值范围是2^31~+(2^31-1)。如果对范围不太有把握,可以记住绝对值在10^9范围以内的整数都可以定义成int型。

②对长整型long long来说,一个整数占用64bit,也即8Byte,取值范围是-2^63~+(2^63-1),也就是说,如果题目要求的整数取值范围超过2147483647(例如10^10或者10^18),就得用long long型来存储。

除此之外,对于整型数据,都可以在前面加个 unsigned,以表示无符号型,例如 unsigned int和unsigned long long,占用的位数和原先相同,但是把负数范围挪到正数上来了。也就是说,unsigned int的取值范围是0~2^32-1, unsigned long long的取值范围是0~2^64-1。一般来说,很少会出现必须使用 unsigned int和 unsigned long long的情况,因此初学者只需要熟练使用int和 longlong即可。

简单来说,需要记住的是,看到题目要求10^9以内或者说32位整数,就用int型来存放如果是10^18以内(例如10^10)或者说64位整数,就要用 long long型来存放。

2.浮点型

通俗来讲,浮点型就是小数,一般可以分为单精度(float)和双精度( double)。

①对单精度float来说,一个浮点数占用32bit,其中1bit作为符号位、8bit作为指数位、23bit作为尾数位(了解即可),可以存放的浮点数的范围是-2^128~+2^128,但是其有效精度只有6~7位(由2^23可以得到,读者只需要知道6~7位有效精度即可)。这对一些精度要求比较高的题目是不合适的。

②对双精度double来说,一个浮点数占用64bit,其中依照浮点数的标准,1bit作为符号位、11bit作为指数位、52bit作为尾数位,可以存放的浮点数的范围是-2^1024~+2^1024,其有效精度有15~16位,比float优秀许多。

3.字符型

(1)字符变量和字符常量

在C语言中,字符常量使用ASCII码统一编码。标准ASCIi码的范围是0~127,其中包含了控制字符或通信专用字符(不可显示)和常用的可显示字符。在键盘上,通过敲击可以在屏幕上显示的字符就是可显示字符,比如0~9、A~Z、a~z等都是可显示字符,它们的ASCⅡ码分别是48~57、65~90、97~122,不过具体数字不需要记住,只要知道小写字母比大写字母的ASCII码值大32即可。ASCII表如下

ASCII控制字符

二进制

十进制

十六进制

缩写

可以显示的表示法

名称/意义

0000 0000

0

00

NUL

空字符(Null)

0000 0001

1

01

SOH

标题开始

0000 0010

2

02

STX

本文开始

0000 0011

3

03

ETX

本文结束

0000 0100

4

04

EOT

传输结束

0000 0101

5

05

ENQ

请求

0000 0110

6

06

ACK

确认回应

0000 0111

7

07

BEL

响铃

0000 1000

8

08

BS

退格

0000 1001

9

09

HT

水平定位符号

0000 1010

10

0A

LF

换行键

0000 1011

11

0B

VT

垂直定位符号

0000 1100

12

0C

FF

换页键

0000 1101

13

0D

CR

归位键

0000 1110

14

0E

SO

取消变换(Shift out)

0000 1111

15

0F

SI

启用变换(Shift in)

0001 0000

16

10

DLE

跳出数据通讯

0001 0001

17

11

DC1

设备控制一(XON 启用软件速度控制)

0001 0010

18

12

DC2

设备控制二

0001 0011

19

13

DC3

设备控制三(XOFF 停用软件速度控制)

0001 0100

20

14

DC4

设备控制四

0001 0101

21

15

NAK

确认失败回应

0001 0110

22

16

SYN

同步用暂停

0001 0111

23

17

ETB

区块传输结束

0001 1000

24

18

CAN

取消

0001 1001

25

19

EM

连接介质中断

0001 1010

26

1A

SUB

替换

0001 1011

27

1B

ESC

跳出

0001 1100

28

1C

FS

文件分割符

0001 1101

29

1D

GS

组群分隔符

0001 1110

30

1E

RS

记录分隔符

0001 1111

31

1F

US

单元分隔符

0111 1111

127

7F

DEL

删除

ASCII可显示字符

二进制

十进制

十六进制

图形

0010 0000

32

20

(空格)(␠)

0010 0001

33

21

!

0010 0010

34

22

"

0010 0011

35

23

#

0010 0100

36

24

$

0010 0101

37

25

%

0010 0110

38

26

&

0010 0111

39

27

'

0010 1000

40

28

(

0010 1001

41

29

)

0010 1010

42

2A

*

0010 1011

43

2B

+

0010 1100

44

2C

,

0010 1101

45

2D

-

0010 1110

46

2E

.

0010 1111

47

2F

/

0011 0000

48

30

0

0011 0001

49

31

1

0011 0010

50

32

2

0011 0011

51

33

3

0011 0100

52

34

4

0011 0101

53

35

5

0011 0110

54

36

6

0011 0111

55

37

7

0011 1000

56

38

8

0011 1001

57

39

9

0011 1010

58

3A

:

0011 1011

59

3B

;

0011 1100

60

3C

<

0011 1101

61

3D

=

0011 1110

62

3E

>

0011 1111

63

3F

?

二进制

十进制

十六进制

图形

0100 0000

64

40

@

0100 0001

65

41

A

0100 0010

66

42

B

0100 0011

67

43

C

0100 0100

68

44

D

0100 0101

69

45

E

0100 0110

70

46

F

0100 0111

71

47

G

0100 1000

72

48

H

0100 1001

73

49

I

0100 1010

74

4A

J

0100 1011

75

4B

K

0100 1100

76

4C

L

0100 1101

77

4D

M

0100 1110

78

4E

N

0100 1111

79

4F

O

0101 0000

80

50

P

0101 0001

81

51

Q

0101 0010

82

52

R

0101 0011

83

53

S

0101 0100

84

54

T

0101 0101

85

55

U

0101 0110

86

56

V

0101 0111

87

57

W

0101 1000

88

58

X

0101 1001

89

59

Y

0101 1010

90

5A

Z

0101 1011

91

5B

[

0101 1100

92

5C

\

0101 1101

93

5D

]

0101 1110

94

5E

^

0101 1111

95

5F

_

二进制

十进制

十六进制

图形

0110 0000

96

60

`

0110 0001

97

61

a

0110 0010

98

62

b

0110 0011

99

63

c

0110 0100

100

64

d

0110 0101

101

65

e

0110 0110

102

66

f

0110 0111

103

67

g

0110 1000

104

68

h

0110 1001

105

69

i

0110 1010

106

6A

j

0110 1011

107

6B

k

0110 1100

108

6C

l

0110 1101

109

6D

m

0110 1110

110

6E

n

0110 1111

111

6F

o

0111 0000

112

70

p

0111 0001

113

71

q

0111 0010

114

72

r

0111 0011

115

73

s

0111 0100

116

74

t

0111 0101

117

75

u

0111 0110

118

76

v

0111 0111

119

77

w

0111 1000

120

78

x

0111 1001

121

79

y

0111 1010

122

7A

z

0111 1011

123

7B

{

0111 1100

124

7C

|

0111 1101

125

7D

}

0111 1110

126

7E

~

注意:

字符常量必须用单引号标注起来,以区分是作为字符变量还是字符常量出现。为此,在C语言中,字符常量(必须是单个字符)必须用单引号标注,以表明它们是字符常量。

(2)转义字符

上面提到,ASCII码中有一部分是控制字符,是不可显示的。像换行、删除、Tab等都是控制字符。那么在程序中怎样表示ー个控制字符呢?对一些常用的控制字符,C语言中可以用一个右斜线加一些特定的字母来表示。例如,换行通过“n”来表示,Tab键通过“t”来表示。由于这种情况下斜线后面的字母失去了本身的含义,因此又称为“转义字符”。在实际做题目时,比较常用的转义字符就只有下面两个,希望读者能够记住。

(3)字符串常量

字符串是由若干字符组成的串,在C语言中没有单独一种基本数据类型可以存储(C++中有 string类型),只能使用字符数组的方式。因此这里先介绍字符串常量。

上面提到,字符常量就是单个使用单引号标记的字符,那么此处的字符串常量则是由双引号标记的字符集,例如" WOAIDERENBUAIWO"就是一个字符串常量。

字符串常量可以作为初值赋给字符数组,并使用%s的格式输出。

最后指出,不能把字符串常量赋值给字符变量,因此 char c="abcd"的写法是不允许的。

4.布尔型

布尔型在C++中可以直接使用,但在C语言中必须添加stdbool.h头文件才可以使用。布尔型变量又称为“bool型变量”,它的取值只能是ture(真)或者false(假),分别代表非零与零。在赋值时,可以直接使用ture或false进行赋值,或是使用整型常量对其进行赋值,只不过整型常量在赋值给布尔型变量时会自动转换为true(非零)或者 false(零)。注意:“非零”是包括正整数和负整数的,即1和-1都会转换为true。但是对计算机来说,true和 false在存储时分别为1和0,因此如果使用%d输出bool型变量,则ture和 false会输出1和0。(c++文件扩展名为.cpp;C语言文件拓展名为.c,需要添加 include< stdboolh>头文件)

c语言字母的范围,C语言变量类型及其表示范围相关推荐

  1. c语言里变量列表,嵌入式C语言里的土豪们之变量类型

    嵌入式C语言里的土豪们之变量类型本文引用地址:http://www.eepw.com.cn/article/184332.htm 上一篇我们谈到了运算奢华大户除法(详见<嵌入式C语言里的土豪们之 ...

  2. C语言的指针符号到底靠近变量类型还是变量名?

    今天在复习数据结构时,C语言实现线性表用到了指针,对指针符号的位置存疑,遂查询了一下: 在C语言中只要使用指针,必然用到* 运算符.然后经常会看到不同的书中*有靠近变量类型的,有靠近变量名称的,很迷惑 ...

  3. c语言字母的数据类型,C语言数据类型

    在C语言中,数据类型分为基本类型.构造类型.指针类型和空类型void.其中基本类型又分为数值类型和字符类型:数值类型又分为整型和浮点型.构造类型又分为数组.结构体.共用体和枚举类型. 对于一些基本类型 ...

  4. C语言字母的压缩,C语言字符串快速压缩算法代码

    C语言字符串快速压缩算法代码 大家知道C语言字符串快速压缩算法是怎么样的吗?下面小编为大家整理了C语言字符串快速压缩算法代码,希望能帮到大家! 通过键盘输入一串小写字母(a~z)组成的字符串. 请编写 ...

  5. c语言字母的范围,C语言字符-C语言char-C语言字符取值范围-嗨客网

    C语言字符教程 '' 包围. C语言字符定义详解 语法 char varname = value; 参数 参数 描述 char 定义字符类型变量使用的类型. varname 变量名. value 可选 ...

  6. C语言字母升序排列,C语言改错题,题目:实现n个字符串的升序排列

    C语言改错题,题目:实现n个字符串的升序排列 #include #include #define ROW 5 #define COL 30 void fun(char s[][COL],int n) ...

  7. c语言 字母方阵,运用C语言制作拉丁方阵的实现方法

    小编今天要给大家带来的教程是:运用C语言制作拉丁方阵的方法.在这篇教程中,小编以三个部分来进行讲述,分别是提出问题,问题分析以及程序编码这三部分,希望这篇教程可以帮助到大家. 在教程开始之前,小编先给 ...

  8. 字母三角形c语言字母不重复,c语言实践 打印字母三角形

    效果如下: 我是怎么想的: 总共需要打印6行字母,那么就需要一个循环来控制打印第几行,大概代码如下: for(int i=0;i<6;i++) { } 每行都会打印字母,而且循环越往后,需要打印 ...

  9. c语言字母倒金字塔编程,C语言倒金字塔编程.ppt

    <C语言倒金字塔编程.ppt>由会员分享,提供在线免费全文阅读可下载,此文档格式为ppt,更多相关<C语言倒金字塔编程.ppt>文档请在天天文库搜索. 1.套含空心金字塔图案项 ...

最新文章

  1. 中南大学c语言上机考试题库,中南大学C++题库之选择题
  2. java监听组合按键_js监听组合按键
  3. 干货 | 一文搞懂极大似然估计
  4. 编译GCC4.8.2
  5. spring aop原理_Spring知识点总结!已整理成142页离线文档(源码笔记+思维导图)...
  6. grep、cut、awk、sed文本处理
  7. tornado 学习笔记17 HTTPServerRequest分析
  8. 论文阅读课1-Attention Guided Graph Convolutional Networks for Relation Extraction(关系抽取,图卷积,ACL2019,n元)
  9. oracle中where中使用函数,Oracle 尽量避免在 SQL语句的WHERE子句中使用函数
  10. MTK 驱动开发(34)---待机功耗调试
  11. 阿德莱德计算机科学怎么样,阿德莱德大学计算机科学硕士专业怎么样?成为IT大牛的不二之选...
  12. Python绘制三次贝塞尔曲线
  13. 【连载】【FPGA黑金开发板】Verilog HDL那些事儿--数码管电路驱动(八)
  14. Springboot整合SpringSecurity--对静态文件进行权限管理
  15. 为什么计算机报名无法选择福建,2020年9月福建计算机考试如何报名
  16. GPIO驱动实例:操作LED开关
  17. DHI Mike 后处理工具——污染带面积、长度、宽度统计工具
  18. 机器人仿真搭建(以ABB为例)
  19. 客户端第二次连接失败,SYN包发了,没有收到服务端回 SYN+ACK ,SYN包被丢弃了
  20. vue 上传视频到保利威视

热门文章

  1. 一张图不用,纯CSS 做个生日贺卡
  2. Windows CmdPHP窗口消失 但程序依旧执行 查找进程ID(PId)并强制结束进程--wmic process where name--taskkill
  3. 如何启用计算机hdmi,解答电脑怎么使用HDMI连接电视
  4. 【Java】IntelliJ IDEA - Java类闪电符号意义
  5. Mysql动态改表字段
  6. 设计模式之桥接模式详解
  7. python 协程 async/await
  8. 蓝桥杯VIP题目免费提交,内含超详解,步步截图!!!
  9. 百度地图获得POI及python实现
  10. unity 3D里有两种动态加载机制