为什么变量值会自动改变?
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
中使用 eq 比较运算符 ==
int isFull()
{
if((rear==MAX-1 && front==0) || front==rear+1)
return 1;
else
return 0;
}
这是我的代码
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;
}