飘飞的海

 

随笔分类 -  C/C++

char *p和char q[]采用"abcdef"初始化的不同
摘要:1 #include <stdio.h> 2 int main() 3 { 4 char *p="abcdef"; //p在栈中,只是一个指针没有申请内存,“abcdef”在常量数据区 5 p[2]='W'; 6 printf(p); 7 getchar(); 8 return 0; 9 } 10 //这个程序编译通过,但是程序运行会出错11 //p指向的是一块常量数据区,不能修改其值12 //另一个: 13 #include <stdio.h> 14 int main() 15 { 16 char s[]="abcdef& 阅读全文

posted @ 2012-10-26 14:10 飘飞的海 阅读(369) 评论(0) 推荐(0)

(x&y)+((x^y)>>1)
摘要:很不错的思路,虽然不算高效,但如果在汇编中的话,这种方法可以不产生高位溢出。大概思路应该是这样:(x&y)+((x^y)>>1),把x和y里对应的每一位(指二进制位)都分成三类,每一类分别计算平均值,最后汇总。1、是x,y对应位都是1,用x&y计算其平均值;2、是x,y中对应位有且只有一位是1,用(x^y)相当于计算机这些位的和,>>1相当于除2;3、是x,y中对应位均为0,无须计算。 阅读全文

posted @ 2012-10-01 16:55 飘飞的海 阅读(891) 评论(0) 推荐(0)

导航