打印
[技术问答]

如何分辨指针变量*p和取值运算*p?

[复制链接]
1758|34
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chenci2013|  楼主 | 2025-2-27 16:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

int *p;
2、取值运算时
这里,*p表示对指针p所指向的内存地址进行取值操作,将p指向的值赋给变量value。*号出现在变量名p之前,用来获取指针所指向的值。
p = &x;
4、修改指针指向的值时
这里,*p表示对指针p所指向的内存地址进行赋值操作,将10赋值给p指向的内存地址。*号出现在变量名p之前,用来指定要修改指针所指向的值。

声明指针变量:int *p;,*号在类型和变量名之间。
赋值给指针:p = &x;,不涉及*号。
修改指针指向的值:*p = 10;,*号在变量名之前,用于修改指针所指向的值。

使用特权

评论回复
沙发
zhuomuniao110| | 2025-2-27 21:00 | 只看该作者
应该是看P是不是指针了。

使用特权

评论回复
板凳
zhuomuniao110| | 2025-2-27 21:01 | 只看该作者
在C语言中,*p 的语义取决于上下文环境。它可以表示 指针变量声明 或 取值运算。

使用特权

评论回复
地板
海市蜃楼神秘| | 2025-3-4 13:31 | 只看该作者
首先看p是什么,如果P是指向指针的指针呢,*p 意义又不一样了。

使用特权

评论回复
5
mickit| | 2025-3-10 17:14 | 只看该作者
1. 指针变量 *p
声明:int *p; 表示 p 是一个指向 int 类型的指针变量。
含义:p 存储的是一个 int 类型变量的地址。
使用:p 本身是一个变量,可以对其进行赋值、比较等操作。
2. 取值运算符 *p
含义:*p 表示 p 指向的内存地址中存储的值。
使用:通过 *p 可以访问或修改 p 指向的内存地址中的内容。

使用特权

评论回复
6
kkzz| | 2025-3-10 18:04 | 只看该作者
遵循C语言的语法规则。在声明语句中,指针类型声明总是位于变量名之前;而在表达式中,取值运算的星号则紧跟在指针变量之后。

使用特权

评论回复
7
sdlls| | 2025-3-11 13:05 | 只看该作者
指针变量 *p:表示 p 是一个指向 int 类型的指针变量,存储的是一个地址。
取值运算符 *p:表示 p 指向的内存地址中存储的值,可以通过 *p 访问或修改该值。

使用特权

评论回复
8
mattlincoln| | 2025-3-11 14:26 | 只看该作者
在非定义语句的表达式中,* 作为取值运算符,用于获取指针所指向的内存地址中的值。

使用特权

评论回复
9
biechedan| | 2025-3-14 20:58 | 只看该作者
指针变量声明:*p 出现在变量声明中,表示 p 是一个指针。
取值运算:*p 出现在表达式中,表示解引用指针,取出指针所指向的值。

使用特权

评论回复
10
loutin| | 2025-3-15 00:49 | 只看该作者
如果*p后面跟着赋值操作或其他表达式操作,那么它很可能是取值运算符。
如果*p前面有类型声明并且后面没有立即跟随表达式或语句,那么它可能是指针变量的定义

使用特权

评论回复
11
febgxu| | 2025-3-15 03:59 | 只看该作者
通过长期阅读和编写C语言代码,培养对指针和取值运算的敏感度和理解力。习惯上,我们会在脑海中将指针声明中的星号与变量类型视为一个整体,而将取值运算中的星号视为对指针的操作。

使用特权

评论回复
12
uptown| | 2025-3-15 07:34 | 只看该作者
在定义指针变量时,* 与变量名紧密结合。

使用特权

评论回复
13
tabmone| | 2025-3-15 11:14 | 只看该作者
取值运算中的星号(*)则用于获取指针所指向的内存地址中的值。

使用特权

评论回复
14
janewood| | 2025-3-15 14:24 | 只看该作者
在 int value = *p; 语句里,*p 进行的是取值运算,它会取出 p 所指向的内存地址中存储的值,也就是 num 的值 10,并将其赋给变量 value。

使用特权

评论回复
15
febgxu| | 2025-3-15 19:39 | 只看该作者
*p用于获取指针p所指向的内存地址中的值。*在这里是解引用运算符,表示取出p指向的值。

使用特权

评论回复
16
sdCAD| | 2025-3-15 20:07 | 只看该作者
指针变量 p 是“地址容器”,用于间接访问内存。
​取值运算 *p 是“数据窗口”,用于读取或修改内存值。

使用特权

评论回复
17
claretttt| | 2025-3-16 14:08 | 只看该作者
在表达式中,* 作为单目运算符,其优先级较高。它会先对指针进行取值操作,然后再进行其他运算。

使用特权

评论回复
18
albertaabbot| | 2025-3-16 14:56 | 只看该作者
int *p;‌:声明一个指向int类型的指针变量p。
*p:在表达式中用于解引用指针p,获取p所指向的值。

使用特权

评论回复
19
uytyu| | 2025-3-16 15:52 | 只看该作者
取值运算符*p表示获取指针变量p所指向的内存地址中的值。在上面的例子中,如果p指向a,那么*p就是a的值。

使用特权

评论回复
20
幻想收藏家| | 2025-3-17 19:38 | 只看该作者
对于初学者来说很有帮助,希望能看到更多类似的编程基础知识分享

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

120

主题

6509

帖子

4

粉丝