c++中有这样一个特性,即对于与、或运算,如果能够通过第一个表达式计算出整个表达式的真值,那么就不会再去计算第二个表达式。
比如或运算
a || b,如果a的值是true,那么整个表达式也肯定是true,程序不会去计算第二个表达式。
与运算
a&&b,如果a的值是false,那么整个表达式也肯定是false,程序不会去计算第二个表达式。
于是就出现了一下妙用:
比如,对一个指针接引用,那么必须保证这个指针非空:
传统的做法是
if(ptr)
ptr->value;
比较简洁的做法:
ptr && ptr->value;
经典的例子:
求n!,要求不能使用任何判断语句,不能使用任何循环语句
给你3秒钟哦亲。
公布答案:
int func(int n)
{
int t=0;
n && t=func(n-1);
return t*n;
}
时间: 2024-09-13 05:24:58