我正在处理date validation
(MM / DD / YYYY)并收到此错误:
错误:左值作为赋值的左操作数
在第9行(if ( Y%4=0 ) { return true; }
)运行这段代码?
bool valDate( int M, int D, int Y )
{
if (! (1<=M and M<=12) ) return false;
if (! (1<=D and D<=31) ) return false;
if ( (D==31) and (M==2 or M==4 or M==6 or M==9 or M==11) )
return false;
if ( (D==30) and (M==2) ) return false;
if ( (M==2) and (D==29) ) {
if ( Y%4=0 ) { return true; }
else { return false; }
if ( (Y%100==0) and (Y%400==0) ) { return true; }
else { return false; }
}
}
有人可以解释错误(以及我做错了什么)吗?干杯!!
答案 0 :(得分:5)
if ( Y%4=0 ) { return true; }
应该是:
if ( Y%4==0 ) { return true; }
左值是一个引用内存中某个位置的表达式。 Y%4是一个右值 - 从语义上讲,它不能被赋值。