摘要: 求最大值:方案一:int max = ((a + b)+ abs(a - b))/2方案二:int c =a - b;char *strs[2] = {"a Large ", "b Large "};c = unsigned(c) >> (sizeof(int) * 8 - 1);a, b交换:方案一:a = a + b;b = a - b;a = a - b;这样做如果a和b的值很大时,很容易出现溢出。方案二:a = a ^ b;b = a ^ b;a = a ^ b;这样做的原理是按位异或运算,按位异或运算符号“^”是双目运算符,其功能是 阅读全文
posted @ 2013-03-27 10:19 青山绿水6791 阅读(167) 评论(0) 推荐(0)
摘要: 1、由于[]的优先级比*的高,所以在如下函数调用中要使用小括号()。int f(int (*daytab)[13]);2、一般来说,除数组的第一维不指定大小,其余各维都必须明确指定大小。3、结构成员运算符"."的优先级比"*"的优先级高。表达式*pp.x的含义等价于*(pp.x),因为x不是指针,所以该表达式是非法的。因此上述表达式应该写成(*pp).x的形式,它的等价形式维pp->x。4、在所有的运算符中,下面4个运算符的优先级最高:结构运算符“->”和“.”、用于函数调用的“()”以及用于下表的“[]”,因此,它们与操作数之间的结合也是最紧密的,例如对于结构的声明1 struc 阅读全文
posted @ 2013-03-26 22:45 青山绿水6791 阅读(408) 评论(0) 推荐(0)