馒头酸菜 发表于 2019-12-1 10:05:53

帮忙解决一下,感谢!

#include <stdio.h>

typedef struct Node
{
    int data;
    int weight;
}Node, N, M;

void fun(Node *a)
{
    a->weight = 1;
}

int main()
{
    N man;
    fun(*man);
    man->data = 0;
    printf("%d, %d", man ->weight, man->data);
    return 0 ;
}


man -> data = 0;这个语句为什么不可以改成   *man ->data = 0;   ?
感谢您的回答!!

人造人 发表于 2019-12-1 11:14:13

(*man)->data = 0;

jackz007 发表于 2019-12-1 11:52:12

      -> 运算符的优先级高于 * 所以,* man 必须加括号:
   (* man) -> data = 0;

馒头酸菜 发表于 2019-12-7 16:13:24

jackz007 发表于 2019-12-1 11:52
-> 运算符的优先级高于 * 所以,* man 必须加括号:

谢谢!

馒头酸菜 发表于 2019-12-7 16:13:56

人造人 发表于 2019-12-1 11:14


谢谢
页: [1]
查看完整版本: 帮忙解决一下,感谢!