爱情告诉我 苏有朋:基本数据类型共有五种: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’,用程序语句把它转换成小写。