我们在很多并发成立的几个条件之间使用&&运算符,表示二者必须同时为真。
它还有一个隐含的意思,那就是只要有其中一个条件为假,则整个判断为假。
例如:
if(1==a&&1==b)
{
dosomething();
}
这是很普通的用法。我最近在学习一个开源的webserver程序。里面涉及到一个判断一个字符串的第一个字符是否是”/”,若是,则去掉这个”/”。
例如:“/home/name/works/index.php” =>”home/name/works/index.php”
“index.php”=>不变。
我想这个算法并不复杂,用一个if else就搞定了.
可以这样写
char *url=”/home/name/works/index.php”;
char *doc;
doc=url;
if(*doc==’/')
doc++;//右移一位。
printf(“%s”,doc);
而这个开源程序中的算法令我惊讶。
char *url=”/home/name/works/index.php”;
char *doc;
doc=url;
*doc == ‘/’ && ++doc;
改算法巧妙的利用了&&运算符–判断前者,前者成立,则判断后者(后者此时是一个计算动作),若前者不成立,则忽略后者。在不使用IF的情况下完成了一个判断。十分精彩。
Related posts:





No Comments » 