|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
int *p定义一个名叫*p的变量,这样理解正确么?
- u0 d6 ]7 w, ^! K# i6 f简单介绍一下指针:由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化地称为“指针。”意思是通过它能找到以它为地址的内存单元。
9 P8 S8 l; Y+ ?
6 Y/ E+ Y& @$ i9 k3 {0 U5 h一般形式. W) q6 o5 j- X# E" d2 z; d1 y
类型名 *指针变量名;6 w3 U% I8 N0 Q* g9 g
$ R! U) V5 ~4 @& c; k
大部分人初学C语言的时候遇到:int p,则理解为定义了一个int类型的变量p。- D: P) O0 z8 I2 X$ g" p3 _. J2 H
3 D. z, h% h, d1 h5 T1 T因此到指针的时候,很容易也理解:int *p,是一个int类型的*p变量,这种说法实际上是错误的。3 p2 P" b' O% F2 y8 @
. C9 t5 T% h0 `int *p,其中p只是变量的名字,int *表示p变量存放的是int类型变量的地址,而不是一个int类型的*p变量。$ d6 ~- n- n' \" m
% p4 P9 S" L* M1 k6 N指针就是一个地址,地址就是一个指针。9 D2 D! @: S. h% v
1 T6 ?" Z/ o7 x, {/ A所谓int *类型,实际上就是存放int变量地址的类型,而地址则是内存单元的编号。
9 s8 P+ ]6 K4 _6 b0 a F1 J+ a* l
还有一点需要注意,指针和指针变量是两个不同的概念,我们平时习惯性说的指针,实际上是指针变量,指针只是一个地址,没有其他含义。2 {8 d8 ~' D3 P3 f$ Y4 N
, J5 X; y$ Q0 U. S/ i) ?# W
建议初学者学习的时候,直接说清楚学的是指针变量还是指针,避免说多混淆概念。, p% R9 |) u) g4 g) ]" o
| 7 w9 b$ z7 i! J
|
|