|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
int *p定义一个名叫*p的变量,这样理解正确么?1 P" n8 o# c5 _, e" g
简单介绍一下指针:由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化地称为“指针。”意思是通过它能找到以它为地址的内存单元。
4 o$ g9 g9 b: t1 f4 |
5 B6 z! M, N5 b `. Y$ \7 c一般形式8 t, B% a g% V# ^6 F2 W# L5 A1 O
类型名 *指针变量名;
! A. N# c5 i+ l* s
5 f) F' Z `( @/ @+ D1 Z+ `5 y大部分人初学C语言的时候遇到:int p,则理解为定义了一个int类型的变量p。: D! t3 _! m( V: t4 Q
. f( e: s, ]+ z4 Q因此到指针的时候,很容易也理解:int *p,是一个int类型的*p变量,这种说法实际上是错误的。5 b6 _/ u% Z3 H8 x) L8 j& C! [
5 `8 a4 a7 A3 h% q* `int *p,其中p只是变量的名字,int *表示p变量存放的是int类型变量的地址,而不是一个int类型的*p变量。
; b9 L! M, m/ O E s7 }, F% v* z
* E* h3 }) G2 G1 r% B指针就是一个地址,地址就是一个指针。 w+ V) v- Q% P( E/ L- G
' a8 ?, h5 V$ z4 t2 J7 f$ B所谓int *类型,实际上就是存放int变量地址的类型,而地址则是内存单元的编号。
. I9 r+ ]5 s. d e7 s/ [' ?
% [! K t+ Q* d+ P V( t还有一点需要注意,指针和指针变量是两个不同的概念,我们平时习惯性说的指针,实际上是指针变量,指针只是一个地址,没有其他含义。! n( b* [: y5 Z) A
; s, d$ \- S' ?' J建议初学者学习的时候,直接说清楚学的是指针变量还是指针,避免说多混淆概念。1 U4 ?3 G% D) h4 {
| 4 @6 a, K/ V& s+ \$ A
|
|