当前位置:编程学习 > C#/ASP.NET >>

新手,求助一个简答的C程序,麻烦大神帮忙解答下

struct ks  
{  
    int a;  
    int *b;  
}s[4],*p;  
void mian()
{
    int n=1,i;  
    for(i=0;i<4;i++)  
    {  
        s[i].a=n;  
        s[i].b=&s[i].a;  
        n+=2;  
    }  
    p=&s[0];  
    p++;  
    printf("%d,%d\n",(++p)->a,(p++)->a);  
}
答案为什么是5,3
我的理解:++p之后,p指向s[2]了,p++之后应该是(p++)->a的值还是指向s[2],但是接着p就指向s[3]了
可是为啥不是呢,求大神解答下 C --------------------编程问答-------------------- 你的程序我运行的结果是7,3呀,错误的原因就是下面这句话
 printf("%d,%d\n",(++p)->a,(p++)->a);  

++p和p++是不能写在同一行的, 这种写法在c中是没有定义的,假如你写成这样就没有问题了:
 printf("%d\n",(++p)->a);
    printf("%d\n",(p++)->a);
--------------------编程问答-------------------- 我的编译器是gcc (GCC) 4.4.6 20110731 (Red Hat 4.4.6-3)
补充:.NET技术 ,  其他语言
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,