C数据结构、变量

标签 c pointers variables structure

抱歉,菜鸟问题

我有一个结构:

typedef struct  s_test
{
    int         head;
    char        *end;
}               t_test;

我的代码:

int main()
{
   t_test a;
   t_test *b;
}

a.headb->head 之间有什么不同?为什么我无法输入 a->headb.head?我知道 b 是一个指针,它保存变量类型 t_test 的地址。

最佳答案

执行 b->head 只是执行 (*b).head 的方便语法糖。

您必须先取消引用指向结构的指针,然后才能在其上使用点表示法,这就是您无法执行 b.head 的原因。

不能执行 a->head 的原因是 a 不是指针,因此无法取消引用。解引用运算符*仅对指针有意义。

关于C数据结构、变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59668932/

相关文章:

c - 在长二进制序列中找到与给定短二进制序列最相似的三个匹配项

Jquery 在事件触发器上传递并存储动态变量

bash - 在 bash 中设置名称未知的变量

c - MPI 检查通信器是否为 MPI_COMM_WORLD

c - 在c中使用指针将二维数组传递给函数

c - 将原始音频写入文件?

c - list - C(家庭作业)

c - C 运行时错误中的 Split 函数

C取消引用指向字符数组的指针

JavaScript 范围问题,嵌套函数中的 var 访问未定义