摘要: 我在前面总结过大端小端的基本概念,一句话说就是对于变量的二进制表示,如果低地址存放的是二进制位的高位,那么说明CPU是大端模式,反之则为小端模式。的确有了这句话的总结之后很容易记忆,我也自以为得其真谛,但是在接下来看题目,做笔试题的过程中发现对于大端小端的理解,还得结合其它的知识点来看。首先就是栈生长的方向问题,栈生长的方向是由高地址向低地址生长,也就是说栈底的地址高一些,而堆则相反,下面结合一个具体的例子来说明,请看如下代码:#include #include int main(int argc, char const *argv[]){ int a=0x9abc0e0d; int b=0x 阅读全文
posted @ 2013-04-18 01:13 曾见绝美的阳光 阅读(387) 评论(0) 推荐(0) 编辑
摘要: 在网上搜了大概有四种办法:用下面的程序验证一下:void swap1(int &a,int &b){ a=a+b; b=a-b; a=a-b; return;}void swap2(int &a,int &b){ a=a-b; b=a+b; a=b-a;}/*swap3 很经典*/void swap3(int &a,int &b){ a^=b; b^=a; a^=b; /*等效的一句话操作是: a^=b^=a^=b; */}/*swap4 ,最精炼*/void swap4(int &a,int &b){ b=a^b^(a=b).. 阅读全文
posted @ 2013-04-17 21:59 曾见绝美的阳光 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 在腾讯春季实习生招聘笔试的时候遇到这么一个问题: 给定一个数组int a[10]; 下面哪些不可以表示a[1]的地址?A. a+sizeof(int)B. &a[0]+1C. (int*)&a+1 D.(int*)((char*)&a+sizeof(int))对于这个题目,我当时的分析是这样的,对于数组名a,它是一个int*指针常量,指向数组第一个元素的地址,既然是指针常量,a+sizeof(... 阅读全文
posted @ 2013-04-17 20:59 曾见绝美的阳光 阅读(609) 评论(0) 推荐(1) 编辑
摘要: 问题描述:在国际象棋中,皇后的属性是在不能在同一行,也不能在同一列,也不能在统一斜线上,否则就要被拼掉,最经典的八皇后问题是给你一个8*8的棋盘和8个皇后,求出所有可能排列的方式,一般不考虑拓扑相似性。 解答方案:何海涛博客中给出的方案是先确定解空间(这么做是因为能够确定解空间的大小),然后对每一个可能的解进行检查,如果满足就输出,他的思路是既然皇后不能在一行,那么对于8皇后,每个皇后我们只需要... 阅读全文
posted @ 2013-04-17 15:54 曾见绝美的阳光 阅读(775) 评论(0) 推荐(0) 编辑
摘要: 问题描述:对于给定的字符串,求出字符串中所包含的字符的所有组合,比如说“abc”中字符的所有组合是a,b,c,ab,ac,bc,abc 何海涛大神给出了他的解答,解答的思路如下: 对于长度为length的字符串,组合的种类分为分别含1,2,…,length字符的字符串。然后对每一种情况分别递归。 我的递归思路是,对于任意字符串,其组合只会有两类,包含第一个字符的组合和不包含第一个字符的组合,于... 阅读全文
posted @ 2013-04-16 23:55 曾见绝美的阳光 阅读(326) 评论(0) 推荐(0) 编辑