打印
[学习资料]

指针符号*与->

[复制链接]
866|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhuomuniao110|  楼主 | 2025-2-27 21:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在C语言中,* 和 -> 是与指针操作相关的两个重要符号。它们的作用和使用场景有所不同,下面详细介绍它们的用法和区别。
1. 指针符号 *
* 是C语言中的 解引用运算符(Dereference Operator),用于访问指针所指向的内存地址中的值。

用法:
声明指针变量:
数据类型 *指针变量名;
例如:
int *p;  // p 是一个指向 int 类型的指针
取值操作:
*指针变量名;
例如:
int a = 10;
int *p = &a;  // p 指向变量 a 的地址
int b = *p;   // 对 p 进行取值操作,b 的值为 10
特点:
* 在声明中表示指针类型。
* 在表达式中表示取值操作。
必须确保指针指向有效的内存地址,否则会导致未定义行为。


2. 箭头符号 ->
-> 是C语言中的 结构体指针成员访问运算符,用于通过指针访问结构体或联合体的成员。

用法:
指针变量名->成员名;
示例:
#include <stdio.h>

struct Person {
    char name[20];
    int age;
};

int main() {
    struct Person person1 = {"Alice", 25};
    struct Person *p = &person1;  // p 指向 person1

    // 使用 -> 访问结构体成员
    printf("Name: %s\n", p->name);  // 输出: Name: Alice
    printf("Age: %d\n", p->age);    // 输出: Age: 25

    return 0;
}
特点:
-> 用于通过指针访问结构体或联合体的成员。

等价于先解引用指针,再用 . 访问成员,即 (*p).成员名。

代码更简洁,可读性更高。


使用特权

评论回复
沙发
zhuomuniao110|  楼主 | 2025-2-27 21:05 | 只看该作者
#include <stdio.h>

struct Point {
    int x;
    int y;
};

int main() {
    // 普通指针和 * 的使用
    int a = 10;
    int *p = &a;
    printf("a = %d\n", *p);  // 输出: a = 10

    // 结构体指针和 -> 的使用
    struct Point point1 = {3, 4};
    struct Point *ptr = &point1;
    printf("x = %d, y = %d\n", ptr->x, ptr->y);  // 输出: x = 3, y = 4

    // 等价形式
    printf("x = %d, y = %d\n", (*ptr).x, (*ptr).y);  // 输出: x = 3, y = 4

    return 0;
}

* 用于指针的声明和取值操作。

-> 用于通过指针访问结构体或联合体的成员。

-> 是 (*p).成员名 的简写形式,代码更简洁。

使用特权

评论回复
板凳
zhuomuniao110|  楼主 | 2025-2-27 21:06 | 只看该作者
-> 是 (*p).成员名 的简写形式,代码更简洁。
所以你也应该明白他们跟   .   符号的区别了吧。

使用特权

评论回复
地板
huangcunxiake| | 2025-2-27 21:32 | 只看该作者
这个初学者经常蒙圈。

使用特权

评论回复
5
21mengnan| | 2025-2-27 22:09 | 只看该作者
确实很有用的资料,适合对指针不明确的人。

使用特权

评论回复
6
jiekou001| | 2025-2-28 11:14 | 只看该作者
看完之后又扎实了自己的基础知识。

使用特权

评论回复
7
gaoyang9992006| | 2025-2-28 14:08 | 只看该作者
新手是容易弄混,.是通过结构体变量访问,->是通过结构体指针访问。

使用特权

评论回复
8
gejigeji521| | 2025-2-28 14:53 | 只看该作者
数组的指针是如何用,就是数组名字吗

使用特权

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

本版积分规则

218

主题

3443

帖子

11

粉丝