EDA365电子论坛网

标题: int *p定义一个名叫*p的变量,这样理解正确么? [打印本页]

作者: geronimo123    时间: 2020-10-26 15:35
标题: int *p定义一个名叫*p的变量,这样理解正确么?
int *p定义一个名叫*p的变量,这样理解正确么?/ W8 F' T/ Y' v+ T
简单介绍一下指针:由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化地称为“指针。”意思是通过它能找到以它为地址的内存单元。
( g/ ~. B. G' Y6 j$ @( R+ h% M) J; {+ E& I. C4 N2 N
一般形式
: l* z8 q8 G+ t0 r类型名 *指针变量名;
6 z7 n- E9 G, Z/ X/ }0 d: r* G+ {+ f' y9 _' b* ^) ]$ W: ^: B, @
大部分人初学C语言的时候遇到:int p,则理解为定义了一个int类型的变量p。" v" l5 X6 }- I0 i: V( t5 @

4 V6 ]+ D. j& y4 ~) w. `因此到指针的时候,很容易也理解:int *p,是一个int类型的*p变量,这种说法实际上是错误的。
0 u4 U  L$ ?( @/ m! I( D& }6 X) F- a+ ?
int *p,其中p只是变量的名字,int *表示p变量存放的是int类型变量的地址,而不是一个int类型的*p变量。* j0 i8 x8 {) l% z

2 q4 ?" Q+ D7 W) h! x指针就是一个地址,地址就是一个指针。
" S: E" ]) E* Y  v; L$ C& H
  O6 C& }/ t, i  }& a. d) C( U' H所谓int *类型,实际上就是存放int变量地址的类型,而地址则是内存单元的编号。
6 \, U! Z2 L* a  K6 V. S
2 e5 {; k3 W! q: d还有一点需要注意,指针和指针变量是两个不同的概念,我们平时习惯性说的指针,实际上是指针变量,指针只是一个地址,没有其他含义。
. v+ i3 f2 b4 J! T) C/ o% W+ j+ k7 b
建议初学者学习的时候,直接说清楚学的是指针变量还是指针,避免说多混淆概念。
5 q$ \5 M7 h3 z2 M& W1 {* w

: m8 V2 A& q2 o
作者: modengxian111    时间: 2020-10-26 16:18
指针就是一个地址,地址就是一个指针




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2