簡體   English   中英

為什么變量值會自動改變?

[英]Why is the variable value changing automatically?

這是我的代碼

    int front=-1, rear=-1, CQUEUE[MAX];
    int isFull()
    {
      if((rear=MAX-1 && front==0) || front==rear+1)
        return 1;
      else
        return 0;
    }
    void enQueue()
    {
      printf("\nValue of rear=%d front=%d",rear,front);
      char ch;
      if(!isFull())
      {
        printf("\nValue of rear=%d front=%d",rear,front);
      ......

這是調用函數 enQueue() 的輸出

Value of rear=-1 front=-1
Value of rear=0 front=-1

盡管我沒有手動增加,但rear的值增加了 1。

看看你的第一個 if 語句。

if (rear=MAX-1  ...)
// maybe better if you type:
if (rear==MAX-1 ...)

您正在使用賦值運算符= ,你應該使用情商比較操作符==isFull

int isFull()
{
  if((rear==MAX-1 && front==0) || front==rear+1)
    return 1;
  else
    return 0;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM