|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
int *p定义一个名叫*p的变量,这样理解正确么?1 l: ^, ?1 s' q% k* d: j
简单介绍一下指针:由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化地称为“指针。”意思是通过它能找到以它为地址的内存单元。
* D" Y. u7 L# k% E9 k0 z/ d4 c" u3 n$ n( v( _% ?
一般形式
2 k/ G9 H5 V/ M9 C% i* `) j类型名 *指针变量名;9 G$ A! P2 d1 e. `7 o/ u7 z& W
4 R, n3 Y2 P6 {! e+ ]' P8 B5 ~
大部分人初学C语言的时候遇到:int p,则理解为定义了一个int类型的变量p。/ Q4 f3 ^5 x" _! [* V P
# K: I9 A. f8 R r: E% ]
因此到指针的时候,很容易也理解:int *p,是一个int类型的*p变量,这种说法实际上是错误的。4 |$ q9 R2 s$ J$ F
5 B; L- K9 X! Aint *p,其中p只是变量的名字,int *表示p变量存放的是int类型变量的地址,而不是一个int类型的*p变量。+ t% D0 Y" p( W% M; p; ]% c
2 V3 K: p+ @1 L指针就是一个地址,地址就是一个指针。
5 I; Q4 U' j; d- `+ u
" j$ l9 J1 d2 K& R g) v, p所谓int *类型,实际上就是存放int变量地址的类型,而地址则是内存单元的编号。( o O0 k" ^$ v1 @0 C/ T% X( u2 {
' u0 ?: A. ^- w" @还有一点需要注意,指针和指针变量是两个不同的概念,我们平时习惯性说的指针,实际上是指针变量,指针只是一个地址,没有其他含义。. Z+ e! R3 D* N: ~/ N' ]( O
. R8 a0 c6 O( W, s4 @0 u4 U2 E8 j
建议初学者学习的时候,直接说清楚学的是指针变量还是指针,避免说多混淆概念。0 P* v. g: b6 Z
|
. ~) R" [) F% [3 x |
|