|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
int *p定义一个名叫*p的变量,这样理解正确么?! |( g0 @6 {! B
简单介绍一下指针:由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化地称为“指针。”意思是通过它能找到以它为地址的内存单元。1 B7 u: R8 @& u) b* M
, B! r7 x& v2 N* a* _$ U& w6 z
一般形式
: ^0 |) D5 C8 i5 W/ l6 m" ^类型名 *指针变量名;) v! V4 E- z& |, G. l
( ?) w: g3 c) R" \1 f大部分人初学C语言的时候遇到:int p,则理解为定义了一个int类型的变量p。
* X4 n& A' y5 B5 T
: Q/ Y2 Z7 g/ j- e4 t因此到指针的时候,很容易也理解:int *p,是一个int类型的*p变量,这种说法实际上是错误的。4 N4 Y* J5 u0 p* b
) O5 Y- E8 i: Z; Q# U9 I$ \1 z
int *p,其中p只是变量的名字,int *表示p变量存放的是int类型变量的地址,而不是一个int类型的*p变量。$ y0 ^8 v- y4 F+ L, x; ]; p
. w7 X" p) K+ r u
指针就是一个地址,地址就是一个指针。
: n2 K. D1 B5 U" I s8 D7 J# X4 X3 Q/ ^- Y1 R) s, H3 D' H K9 k
所谓int *类型,实际上就是存放int变量地址的类型,而地址则是内存单元的编号。1 Q/ x6 P7 F; H3 }1 }4 U- i
; P9 D* ]4 C5 L, n# q( A2 [还有一点需要注意,指针和指针变量是两个不同的概念,我们平时习惯性说的指针,实际上是指针变量,指针只是一个地址,没有其他含义。7 i- M" {5 \ J9 q) @) ]6 ^- V# f' h
: g5 K. `2 P) r; S( |
建议初学者学习的时候,直接说清楚学的是指针变量还是指针,避免说多混淆概念。
& C* D) L% c' o* ` |
( a0 v( U- T2 C# ]* a8 k. Q/ J |
|