发新帖我要提问
12
返回列表
打印
[技术问答]

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

[复制链接]
楼主: chenci2013
手机看帖
扫描二维码
随时随地手机跟帖
21
SophiaOP| | 2025-3-17 20:38 | 只看该作者 回帖奖励 |倒序浏览
解引用跟指针确实看着容易混

使用特权

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

使用特权

评论回复
23
usysm| | 2025-3-18 21:09 | 只看该作者
int*p;
在这个例子中,*p用于声明一个指向int类型的指针变量p。这里的*表示p是一个指针,而不是对p进行解引用。

使用特权

评论回复
24
rosemoore| | 2025-3-19 11:30 | 只看该作者
根据代码上下文判断星号的用途。在变量声明中,星号与变量类型紧密相连,表示该变量为指针类型;而在表达式中,星号单独作用于指针变量,表示取值运算。

使用特权

评论回复
25
fengm| | 2025-3-19 15:34 | 只看该作者
当*p出现在声明语句中时(如int *p;),它表示定义了一个指针变量。
当*p出现在表达式或语句中时(如*p = 10;或printf("%d", *p);),它表示通过指针访问其指向的数据

使用特权

评论回复
26
phoenixwhite| | 2025-3-20 11:39 | 只看该作者
当*出现在表达式中时,它通常用于解引用指针,获取指针所指向的值。

使用特权

评论回复
27
albertaabbot| | 2025-3-20 13:27 | 只看该作者
在变量定义语句里,* 用于表明所定义的变量是指针类型。它的作用是说明该变量将存储一个内存地址。

使用特权

评论回复
28
macpherson| | 2025-3-20 14:25 | 只看该作者
当我们声明一个指针变量时,星号(*)被置于变量类型之前,用以指明该变量是指向某种数据类型的指针。

使用特权

评论回复
29
mikewalpole| | 2025-3-20 14:43 | 只看该作者
指针变量是一种用于存储其他变量地址的变量。当声明一个指针变量时,使用星号*来指定该变量是一个指针。例如,int *p;声明了一个指向整型数据的指针变量p。

使用特权

评论回复
30
hearstnorman323| | 2025-3-20 15:33 | 只看该作者
指针变量本身存储的是一个地址值,即它指向另一个变量或数据的位置。在上面的例子中,p是一个指针变量,它可以存储一个整型变量的地址。

使用特权

评论回复
31
hudi008| | 2025-3-20 15:47 | 只看该作者
#include <stdio.h>

int main() {
    int a = 10;          // 定义一个整数变量 a
    int *p;              // 声明一个指向 int 类型的指针变量 p

    p = &a;              // 将 a 的地址赋值给 p

    // 打印 a 的值
    printf("Value of a: %d\n", a);

    // 打印 p 的值(即 a 的地址)
    printf("Address of a (value of p): %p\n", p);

    // 打印 *p 的值(即 a 的值)
    printf("Value of *p: %d\n", *p);

    // 修改 *p 的值
    *p = 20;

    // 打印 a 的新值
    printf("New value of a: %d\n", a);

    return 0;
}

使用特权

评论回复
32
robincotton| | 2025-3-20 16:02 | 只看该作者
int *p;:这是指针变量声明,*p 表示 p 是一个指针。
*p 在 printf 和赋值语句中:这是取值运算,表示解引用指针 p。

使用特权

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

本版积分规则