c语言这题有大佬能帮忙分析一下吗

2025-06-29 01:18:07
推荐回答(1个)
回答1:

#include
int main(){
    
    struct m
    {
        int x;
        int y;        
    } s[]={{2,32},{8,16},{4,48}};//s[]是结构数组,分别有s[0],s[1],s[2]
    struct m *p=s+1;// p是结构指针,指向p=s[1],此时,p->x=8,p->y=16
    int x;
    x=p->y/s[0].x*++p->x;//将p所指向s[1]内容代入式子,注意++p->x,是对p->x先自加,后参与表达式运算!
    //有:x=s[1].y/s[0].x*(++s[1].x)=16/2*9=72
    printf("x=%d,%d",x,p->x); //此时,p->x=9

    return 0;
}