找回密码
 注册
关于网站域名变更的通知
查看: 258|回复: 1
打印 上一主题 下一主题

int *p定义一个名叫*p的变量,这样理解正确么?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-10-26 15:35 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
int *p定义一个名叫*p的变量,这样理解正确么?
  K! D: @+ ~2 z$ `6 N& [4 w- A简单介绍一下指针:由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化地称为“指针。”意思是通过它能找到以它为地址的内存单元。
2 l& r) M) g% C# a
! _" N. X$ Q" p0 C一般形式9 W% |' P$ D: z) {1 w
类型名 *指针变量名;8 _! m$ [0 J: e! h2 n3 y  }

: S9 Z9 a- `0 E" o7 @  A9 J# U大部分人初学C语言的时候遇到:int p,则理解为定义了一个int类型的变量p。
1 h) t1 L7 @/ \0 z
9 {2 V$ T( i: H8 R% n+ P因此到指针的时候,很容易也理解:int *p,是一个int类型的*p变量,这种说法实际上是错误的。
; _0 p4 w( l% b7 a1 H: z! E( A0 {- I( j1 a
int *p,其中p只是变量的名字,int *表示p变量存放的是int类型变量的地址,而不是一个int类型的*p变量。
) K' w8 L4 x: k1 `# v2 _; Q" h' \* e
! F* ^* ^$ v+ W指针就是一个地址,地址就是一个指针。
) ~1 X5 ]9 n1 q7 Y% g, K1 S
" D% z* U4 d* \- f# N( ]所谓int *类型,实际上就是存放int变量地址的类型,而地址则是内存单元的编号。
2 y# h# T. v$ N4 e) v# x) o$ a" A5 N+ W" |7 l& h7 m1 [
还有一点需要注意,指针和指针变量是两个不同的概念,我们平时习惯性说的指针,实际上是指针变量,指针只是一个地址,没有其他含义。
( D  |. P+ ^, w0 F9 Q( g5 W3 ]8 n, N5 h8 L
建议初学者学习的时候,直接说清楚学的是指针变量还是指针,避免说多混淆概念。) u8 @. e* q. W7 _; e4 M1 r
/ r' h5 A- {( ~2 S$ s. |6 h
  • TA的每日心情
    开心
    2023-1-3 15:10
  • 签到天数: 2 天

    [LV.1]初来乍到

    2#
    发表于 2020-10-26 16:18 | 只看该作者
    指针就是一个地址,地址就是一个指针
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-24 21:51 , Processed in 0.140625 second(s), 24 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表