2010年6月16日

深度理解按位异或运算符

摘要: 参与运算的两个值,如果两个相应位相同,则结果为0,否则为1。即:         0^0=0, 1^0=1, 0^1=1, 1^1=0  例如:     10100001^00010001=10110000 0^0=0,0^1=1 0异或任何数=任何数 1^0=1,1^1=01异或任何数-任何数取反 任何数异或自己=把自己置0  (1)按位异或可以用来使某些特定的位翻转,如对数10100001的... 阅读全文

posted @ 2010-06-16 15:03 highmayor 阅读(365) 评论(0) 推荐(0) 编辑

一个容易忽略的陷阱:修改字符串常量的值

摘要: 见下面例子: int main(){ char *p = "1234"; p[2] = '1'; return 0;}编译时通过,但执行时发生coredump, 原因是试图修改字符串常量的值: "1234"为一字符串常量,编译器有可能把它放在内存的只读区域,而p[2] = '1'试图对此字符串常量作修改,则会产生错误(当然啦,编译器也有不一定会把它放到只读区域,但这种情况应当避免)。。另... 阅读全文

posted @ 2010-06-16 14:46 highmayor 阅读(371) 评论(0) 推荐(0) 编辑

导航