C (3*-*p/(*q)和#x2B;7)=6它是如何工作的?

C (3*-*p/(*q)和#x2B;7)=6它是如何工作的?,c,pointers,C,Pointers,编译器说结果是6,但我不明白为什么会是(-9/12)=-0,74或0,因为这是一个整数,有人能帮忙吗?考虑到隐式编码的优先规则,3*-*p/(*q)+7是(*(*p))/(*q))+7 -9/5的结果是-1,因为/在这里表示整数除法 -1+7的结果是6。因为 3*-*p/(*q)+7与 (3*-3)/5+7与 -9/5+7这是因为整数除法与 -1+7与 int i=3,j=5; int *p, *q; p = &i; q = &j; printf

编译器说结果是6,但我不明白为什么会是(-9/12)=-0,74或0,因为这是一个整数,有人能帮忙吗?

考虑到隐式编码的优先规则,
3*-*p/(*q)+7
(*(*p))/(*q))+7

-9/5
的结果是
-1
,因为
/
在这里表示整数除法

-1+7的结果是6。

因为
3*-*p/(*q)+7

(3*-3)/5+7

-9/5+7
这是因为整数除法与
-1+7

int i=3,j=5;
    int *p, *q;
    p = &i;
    q = &j;

    printf("%d\n", 3* -*p/(*q)+7);
6