(2005-01-01 18:55:17)   647-地三鲜struct{
int val;
}pcb;
struct{
pcb num[4];
int head,tail;
}queue;
queue l;
对 l.num[l.head].val=45进行一次自加,一次自减。
结果发现程序只在45的基础上加减。就是说自加后是46。再自减后却变为44,而不是45。这怎么办呀?
 

解决方案 »

  1.   

    不明白
    Show me your code
      

  2.   

    struct{
    int val;
    }pcb;
    struct{
    pcb num[4];
    int head,tail;
    }queue;
    queue l;通过edit文本框把数值传递给l.num[l.head].val    ,  比如是45。然后,进行操作l.num[l.head].val++;
    在进行操作l.num[l.head].val--;结果应该还是45。
    可是结果却是44。
    难道l.num[l.head].val 是静态变量的原应??????
      

  3.   

    控件等是否更新了 UpdateData
      

  4.   

    #include <iostream>
    using namespace std;
    typedef struct
    {
    int val;
    }pcb;
    typedef struct
    {
     pcb num[4];
     int head,tail;
    }queue;
    queue a;
    void main()
    {
    a.num[a.head].val=45;
    cout<<a.num[a.head].val<<endl;
    a.num[a.head].val++;
    cout<<a.num[a.head].val<<endl;
    a.num[a.head].val--;
    cout<<a.num[a.head].val<<endl;
    }
    输出
    45
    46
    45