我有一个int m和一个unsigned int j并且想要确定它们是偶数还是两者都是奇数.
过去我一直在使用
if((int(j)+m)%2)
Run Code Online (Sandbox Code Playgroud)
抓住只有一个奇怪的情况.但是我担心会int不正确地改变奇怪的偶数j.
这些都会遇到问题吗?
if(!(j%2)!=!(m%2))
if(bool(j%2)!=bool(j%2))
Run Code Online (Sandbox Code Playgroud)
我知道
if(j%2!=m%2)
Run Code Online (Sandbox Code Playgroud)
不起作用,因为'm%2'将产生-1何时m为负数,true无论价值j%2是多少,它总是会评估.
int*a=nullptr; //NULL before C++11
a=new int(1);
delete a;
Run Code Online (Sandbox Code Playgroud)
a现在指向什么?是否指向nullptr或指向它被删除之前指向的地址?