爱情告诉我 苏有朋:基本数据类型共有五种:char、int、float、double、void

来源:百度文库 编辑:偶看新闻 时间:2024/05/02 08:43:31

C语言基础(10-字符数据类型和字符串)   

实型数在内存中的存放――参见P46。因为实型数在内存中的存放形式比较复杂,它是按指数形式存于内存的。

分为3部分:符号;小数部分;指数部分。这一部分的知识要求有个了解就可以了,不必深究。

基本数据类型共有五种:char、int、float、double、void

 

各种数据类型(包括使用类型修饰符)的特点如下:

类 型

宽 度

表示数的范围

说 明

备 注

char

8

-129~127

字符型

基本数据类型

unsigned

8

0~255

无符号型

 

signed char

8

-128~127

单精度字符型

 

int

16

-32768~32767

整型

基本数据类型

unsigned int

16

0~65535

无符号整型

 

signed int

16

-32768~32767

单精度整型

 

short int

16

-32768~32767

短整型

 

unsigned short int

16

0~65535

无符号短整型

 

signed short int

16

-32768~32767

单精度短整型

 

long int

32

-2147483648~214747647

长整型

 

signed long int

32

0~4294967295

单精度长整型

 

float

32

6.4E-38~6.4E+38

浮点型

基本数据类型

double

64

1.7E-308~1.7E+308

双精度型

基本数据类型

long double

80

6.4E-4932~1.1E+4932

长双精度型

 

void

 

 

 

基本数据类型

 

C语言中的字符型数据――前面讲过,所谓字符类型,是用来存放字符的。比如定义了一个字符变量:

char ch; 然后可以把一个字符赋给这个变量 ch=’a’; 但是在程序中会经常看到这样的写法 ch=97,

在这里把一个整数赋给了字符变量。这是允许的。对于字符型、整型之间的区别,不在于字符型非得放一个字符,

整型变量也只能接收整型数,不是这样。在C语言中,不管是字符型或整型,都可以存放整数。它们之间仅仅

是表示数的范围不同,即长度不同。实际上,每一个字符是用一个整数来表示的,这样的与字符对应的整数称做
ASCII代码。(见P374)

ASCII值

字符

控制字符

ASCII值

字符

ASCII值

字符

ASCII值

字符

ASCII值

字符

ASCII值

字符

ASCII值

字符

ASCII值

字符

000

null

NUL

032

 

064

@

096

128

160

 

192

224

α

001

 

033

!

065

A

097

a

129

 

161

 

193

225

β

002

 

034

066

B

098

b

130

 

162

 

194

226

Γ

003

 

035

#

067

C

099

c

131

 

163

 

195

227

π

004

 

036

$

068

D

100

d

132

 

164

 

196

228

Σ

005

 

037

%

069

E

101

e

133

 

165

 

197

229

σ

006

 

038

&

070

F

102

f

134

 

166

 

198

230

μ

007

 

 

039

071

G

103

g

135

 

167

 

199

231

τ

008

 

040

(

072

H

104

h

136

 

168

 

200

232

Φ

009

 

 

041

)

073

I

105

I

137

 

169

 

201

233

θ

010

 

 

042

*

074

J

106

j

138

 

170

 

202

234

Ω

011

 

 

043

+

075

K

107

k

139

 

171

 

203

235

δ

012

 

 

044

,

076

L

108

l

140

 

172

 

204

236

013

 

 

045

-

077

M

109

m

141

 

173

 

205

237

014

 

046

.

078

N

110

n

142

 

174

 

206

238

015

 

047

/

079

O

110

o

143

 

175

 

207

239

016

 

048

0

080

P

112

p

144

 

176

 

208

240

017

 

049

1

081

Q

113

q

145

 

177

 

209

241

±

018

 

 

050

2

082

R

114

r

146

 

178

 

210

242

019

!!

 

051

3

083

S

115

s

147

 

179

 

211

243

020

 

052

4

084

T

116

t

148

 

180

 

212

244

021

§

 

053

5

085

U

117

u

149

 

181

 

213

245

022

 

 

054

6

086

V

118

v

150

 

182

 

214

246

÷

023

 

 

055

7

087

W

119

w

151

 

183

 

215

247

024

 

056

8

088

X

120

x

152

 

184

 

216

248

 

025

 

057

9

089

Y

121

y

153

 

185

 

217

249

 

026

 

058

090

Z

122

z

154

 

186

 

218

250

 

027

 

059

091

[

123

{

155

 

187

 

219

251

028

 

060

<

092

\

124

|

156

 

188

 

220

252

029

 

 

061

=

093

]

125

}

157

 

189

 

221

253

 

030

 

062

>

094

^

126

~

158

 

190

 

222

254

 ■

031

 

063

095

-

127



159

 

191

 

223

255

 

●       注意看一下在ASCII代码表中字符排列的规律,字符’a’的ASCII代码值是十进制数97,由表中排列的规律能不能推算出字符’d’的ASCII代码值?因为字符’d’在字符’a’的后3位,所以字符’d’的ASCII代码值是97+3=100。

●       另外,小写字符’a’与大写字符’A’的代码值相差多少,由表中可以看出相差整数32。所以可以利用这个规律在程序中实现字符大、小写之间的转换。

例:把小写字符’a’转换成大写字符’A’

void main()

{

char ch=’a’;

ch=ch-32;     /*把字符’a’转换成了大写的字符’A’*/

    }

字符在内存中的存放形式――由于在存储器中只能存放二进制的数,所以一个字符放入内存实际上是把与这个字符对应的ASCII代码表示的整数值放进了内存。如 char ch=’a’; 在内存中这个字符a是这样存放的:

 

0

1

1

0

0

0

0

1

 

 


二进制数为 0110 0001  十六进制为 61  十进制数则为 97。

 

C语言中的字符串――若干个字符组成的串就是字符串。由此看字符串与字符相比就是多了一些字符而已。要注意字符串与

字符最大的不同点是在存放一个字符串的时候,系统自动地在一个字符串后面多加上了一个字符串结束标识字符’\0’。在程序运行时就是根据这个字符串结束标识来判断是否到了字符串的尾部。

字符串常量一定要用“ ”号括起来,而字符是用 ‘ ’单引号括起来的。

如有一个a写成这样 ‘a’ 是字符,而写成这样”a”却是一个字符串,这是一定要注意的。

 

题一: 用二进制数形式的写法画出字符串“a”在内存中的存放形式。

(这个题大家自己做一下,以加深对字符和字符串的理解。)

 

题二:有一个大写的字符’D’,用程序语句把它转换成小写。