C语言基础(02-数据类型、运算符与表达式)
数据的类型:
$ s& @5 R( Z6 I2 _. `$ W. x3 ]
8 o, R7 A' n8 z+ ~在程序中要处理大量的数据,把这些数据按其特点分为几种基本的数据类型,它们分别是:
. |. p$ I0 F5 i. o. m. `( ^' m% ?5 i7 U* a5 l, I6 y
1 、整型 2 、字符型 3 、实型 8 h8 C/ _& X) _ t t; B
2 M; {' ?- e: o& I5 n" A4 w$ i9 q
还有其它的一些扩展的数据类型,但是开始学习时要先熟悉这三种基本数据类型。 ^2 C' ^% {/ [0 \
4 d: v& f" b9 J$ N, |; g在 C 语言中这几种数据类型用符号表示如下: X8 s W+ `& m5 f; f4 t
8 H/ C) l+ [( F4 V5 A& Z: U* Q* {整型数据类型 int /* 一般指可以运算的数,如自然数就是整型数据类型 */ 1 f, r b2 E- k* e4 b8 k# d
0 J: k0 W c# M字符数据类型 char /* 一般指文字,如英文字母;字符类型的 '1''2''3''4' 等 */ % A" e& w; S3 M$ I6 Q
7 B: @, J% ^5 Q }5 [$ I% L实型 float /* 也称作浮点型,记住 float 类型的数都是有小数位的,如 425.23*/ 4 z" P3 i( G/ U x
% ?- x" R/ {5 [+ I3 z. U
常量和变量:
+ Q' [0 i7 B% V, x+ D1 Y6 z/ W( M/ d& w+ w o
常量――程序运行过程中其值不变的量,如一个整数 134, 一个字符 ‘a'
& P9 e8 @) `3 m
8 ]1 R* H( n R v- d1 C变量――程序运行过程中其值可以变化的量,如 int a; char b; 那么 a 和 b 都是变量。
2 ~; v' G2 A; j9 x0 F+ j& r/ H
2 ?2 L' c0 n0 r1 D. a符号常量 ――用一个“符号”来表示的一个“常量”称为“符号常量”。
1 F0 }0 }, V3 g/ K8 C' M+ D' T2 R9 n' o: A6 _+ R+ R
符号常量有什么好处 ――在给符号常量命名的时候,按习惯取的名字与实际上的含义相符,可以“见名识意”;另外在需要修改常量的值的时候,只需要修改符号常量的定义部分即可,非常方便。
4 ?5 y/ X% T# v- \
" A9 M+ W! |0 z* N5 |/ q9 Z符号常量的定义方法 ―― #define 符号 常量 6 p S. u3 F- S3 d2 l7 X) p
& q# p% L& M4 [; l7 q. R H例: #define NUMBER 30 /* 定义了一个符号常量,在这里是用符号 NUMBER 表示整数 30 ,以后在程序里就可以 6 |+ x2 u! f2 I
5 E% ^% X3 U7 ?* _用符号 NUMBER 代替整数 30 进行运算 */ 9 V: b/ U- t: \& a0 w0 ~
' j6 p5 C* M4 z) ]' A& [( }main()
! ^; X7 z. ?/ K! z- V: O0 \3 q! e y1 ]- i5 ?; j* v
{ " x3 d4 j6 A" Y2 N+ d+ ^) ^
7 p: d* u! a: U8 p3 @int a=20; /* 把常量 20 赋给整型变量 a*/ 2 o; i; p9 B, v6 V+ B) s; @: V
' d3 F$ c$ {8 x+ [7 @) r2 E( x
int c; /* 定义了整型变量 c*/
- h& {9 X% f$ N% I4 [+ L
1 f$ |, t: K; ^c=NUMBER+a; /* 变量 c 的值此时为 50 ,符号常量 NUMBER 参与了运算 */ 3 ?8 y( ]- H3 ?; }7 [
3 \% h- ~; m( V} , m4 J" C% _7 y) g1 Y) }6 d
9 N& E, m$ u# N. h$ d变量的定义方法 ――在变量的名字前面加上一个变量的数据类型,以说明已定义的变量可以用来存放什么样类型的数据。
, d) _! o( D# l/ w: w( N, J- P8 |& ~" G. @8 i7 s
例: int a; /* 定义了一个整型变量,以后这个变量只能存放整型类型的数 */
8 o/ X# B( o- N/ i/ Q# |% i
6 O8 w, ^- k' g, Ychar b; /* 定义了一个字符型变量,以后这个变量只能存放符字符型数据 */
6 X' J. E7 Z# X+ H+ Z( i# p; c2 |8 T
% W% L, T# Y2 _: ]4 Q怎样把常量值赋给已定义了的变量 ――用一个 = 号赋值。 / _9 G- ]* v3 v" L$ J9 `5 a% ^
7 c! F/ `7 I6 j例: int a; /* 定义一个整型娈量 a*/
" G Z: j: \/ i6 j8 W0 m# c' h
4 I8 M, ^, E5 [/ Cchar b; /* 定义了一个字符型变量 b*/ 6 E9 z7 O! q6 k. w- q
& S. Q' H+ C. w" C" c1 T! I
a=20; /* 用 = 号完成赋值,赋值后变量 a 的值此时为 20*/ 9 l$ H/ g) N- t' B( K
6 z2 C) ^/ `7 D1 f
b='d' /* 把常量字符 'd' 赋给变量 b ,此时变量 b 的值是字符 'd'*/ 1 s; `+ G& q; E# x
' S& Q( Y$ O. O) [& ]! K+ p0 q* X
变量赋值时一种更灵活的方法 ――可以在一行上给多个相同数据类型的变量赋值,变量之间用逗号分隔。
# @0 @, {% n+ N b4 g! V. s
3 C3 p- [9 `3 E% i例: int a,b,c,d; /* 定义了 4 个整型变量 */ 0 l6 D9 f) `2 y: r+ Y, N
F5 U9 _) U) e, r* U
char e,f,g; /* 定义了 3 个字符型变量 */ 0 L, C- u4 h6 S v
0 M$ ~9 S+ m( T( b9 g
深入理解变量 ―― 1 ) 1 个变量必须有一个变量名。 2 )变量必须有其指定的数据类型 3 J x) y- T' e3 U
- k: J5 J& m3 M+ I6 g d3 )变量一旦被定义,它就在内存中占有一个位置,这个位置称做该 变量的地址 。 ) u; R$ x7 F% }3 o, b9 v, f
- L6 q, E' |7 ^+ G
4 )每一个变量都有其对应的值。 1 |6 C9 h; E; x; H P
% L* M. C! u5 r! D9 }/ p5 }
l 一定要牢记变量的这 4 个特性。 2 K( N; y' E/ d f l" y
* {+ b: f ]. ]0 f( W变量使用时的注意事项 ―― 1 )变量在使用之前一定要先定义,使用一个没有定义的变量是错误的。 9 Y! f* U8 _) L. V& d3 b" L
, ^" ~& h" E L3 x: h3 W! i: D1 [% P
2 )变量必须在一个函数的开始部分定义。(这个限制在 C++ 中不存在) 9 D/ X8 r5 A! l. S$ [
: q. j5 V. \7 E- R例题:写一个 2 个整数相加的程序。 % B* I0 W7 {! h: B. [: l+ o( c* h
9 G4 y. s6 O4 x8 H) O
/* 解题思路:求 2 个整数相加,必定要先定义 2 个变量来存放这 2 个数,另外还需要 1 个变量用来存放 $ k( e# X6 {1 V2 G% i1 t! F) {
/ p0 [; Q" @- V+ j* V0 H相加的和,所以共需要定义 3 个整型变量 */
" h' j) m! B7 @; h$ d3 X9 s; d5 m& U. a4 Q
/* 注意每次在写 C 程序的时候一定要注意书写格式 */ . w3 ?% i9 J" j- V+ Z5 D1 \
9 l( {% j% Y& v, h* ~
main()
2 K2 Z, L; C) c
$ F0 R8 ~0 K! k{
[' D; I! V$ T+ \$ t
" l( ~, m# [6 R. S1 o; c4 Fint a,b,c; ! }) C" @3 |$ C9 p& Q/ ^/ E
9 |6 i' {' ]# ]. Q$ ?7 b6 }; R# s
a=20,b=30; /* 在这里指定变量的值,因为还没有讲输入输出函数,只能这样了。 */ % d) q, l" z; Z& s( i' Y
0 s/ h. A* h3 W5 t5 ^
c=a+b;
: V4 ~9 p+ V# L: g
% E* D: A- Z4 J}
q3 X6 E8 g8 a; g) T7 D! ~( C' E6 }3 s0 w$ r3 H0 p5 ^
想一想,这样简单的一个题,需要知道的知识面却不少。 用到了上面所讲的哪些知识?