没有时间把一件事情做好,却有时间把一件事情反复做!
全部博文(191)
分类: C/C++
2014-03-25 14:23:59
|| 从左向右开始计算,当遇到为真的条件 时停止计算,整个表达式为真;所有条件为假时表达式才为假。
&&从左向右开始计算,当遇到为假的条件 时停止计算,整个表达式为假;所有条件为真时表达式才为真。
示例代码1:
#include int main()
{ int i = 0; int j = 0; if( ++i > 0 || ++j > 0 )
{ printf("%d\n", i); printf("%d\n", j);
} return 0;
}
示例代码2:
#include int g = 0; int f()
{ return g++;
} int main()
{ if( f() && f() )
{ printf("%d\n", g);
} printf("%d\n", g); return 0;
}
思考: c语言中为什么需要位运算符???
逗号表达式:从左向右顺序求值之后,最后一个表达式的值作为逗号表达式的结果。
贪心法结合++和--的阅读技巧总结:
1.编译器处理的每个符号应该尽可能多的包含字符;
2.编译器从左向右顺序一个一个尽可能多的读入字符;
3.当即将读入的字符不可能和已读入的字符组成合法字符为止;
示例代码3.1
#include int main()
{ int i = 0; int j = ++i+++i+++i; printf("%d\n", j); return 0;
}
#include int main()
{ int i = 3; int j = (++i)+(++i)+(++i); // 5+5+6 printf("%d\n", j); return 0;
}
隐式类型转换
1.算术运算式中,地类型转换为高类型
2.赋值表达式中,表达式的值转换为左边变量类型
3.函数调用时,实参转换为形参的类型
4.函数返回值是,return表达式转换为返回值类型