gpt4 book ai didi

c - 如何在 C 中声明指向结构的指针?

转载 作者:行者123 更新时间:2023-12-04 12:30:17 25 4
gpt4 key购买 nike

我了解到可以用 3 种不同的方式声明指针:

int* a;
int *b;
int * c;

我更喜欢:

int* a;

在声明一个指向结构体的指针时,这样写是否正确:

struct Card {
int a;
};
struct Card my_card = { 3, 7 };
struct Card* p = &my_card;
(*p).a = 8;

我很困惑,因为我发现它在任何地方都声明如下:

struct Card *p = &my_card;

提前致谢。

最佳答案

如果 T 是某种类型说明符,则指向类型 T 的对象的指针可以通过以下任何方式声明

T*p;
T* p;
T *p;
T * p;

例如,如果 Tint * 那么指针声明可以看起来像

int **p;
int ** p;
int * *p;
int * * p;

用同样的方法声明一个指向结构的指针

struct Card*p = &my_card;
struct Card* p = &my_card;
struct Card *p = &my_card;
struct Card * p = &my_card;

注意你可能会写

T ( *p );

但你可能不会写

( T* ) p;

还存在另一个微妙之处。如果你会写例如

int* p1, p2

然后变量 p1 的类型为 int * 而变量 p2 的类型为 int 而不是int *.

但是如果你会写

typedef int * T;

在这个声明中

T p1, p2;

这两个变量的类型都是int *

关于c - 如何在 C 中声明指向结构的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69574009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com