所以有人可以帮助我掌握一些任务(或者大部分相关的)情况,例如if(…)或while(…)等等?
我的意思是:
if(a = b)
要么
while(a = &c) { }
等等…
什么时候评价为真,什么时候评价为假?根据作业中使用的类型,这是否会发生变化?当涉及到指针的时候呢?
谢谢.
解决方法
在C中,归因评估为归因的值:
int c = 5; // evaluates to 5,as you can see if you print it out float pi = CalculatePi(); // evaluates to the result // of the call to the CalculatePi function
所以,你的声明:
if (a = b) { } while (a = &c) { }
大致相当于:
a = b if (b) { } a = &c while (&c) { }
与…相同
a = b if (a) { } a = &c while (a) { }
那么如果(a)等不是布尔人呢?那么,如果它们是整数,则0是假的,其余的是真的.这个(一个“零”值 – > false,其余的 – > true)通常成立,但是你应该真的引用一个C引用来确定(不过请注意,写入if(a == 0)不是更多比(!a)困难,对读者来说要简单得多).
无论如何,您应始终避免遮挡您的代码的副作用.
你应该永远不需要做(a = b):你可以用更清楚的其他方式来完成同样的事情,而不是看起来像一个错误(如果我读一个代码,如(a = b)我想到的第一件事是写作的发展者犯了一个错误;第二,如果我仔细检查一下是正确的,那就是我讨厌他!:-)
祝你好运