摘要: 今天看到一个求结构体偏移量的题目,可以使用宏来求解,觉得很是新奇,继续深入考虑到结构体字节对齐问题。参考网上的内容,对齐的规则有如下两条:第一个数据成员从offset=0的地址开始放,以后的数据成员存放的起始位置要么为本数据大小的整数倍要么为其体内所含子成员大小的整数倍。结构体的sizeof得到的大小肯定为其内部最大成员的大小的整数倍;网上有说结构体内有子结构体时,子结构体的开始位置应该为其内部最大数据成员大小的整数倍,经实验,不符合此条。同时可以使用#pragma pack(n),来改变对齐的大小,一般都设置为1,2,4。默认的值和机器字长有关。 1 #include 2 #include. 阅读全文
posted @ 2013-09-29 21:23 Little_T 阅读(534) 评论(0) 推荐(0)
摘要: 这次介绍经常在面试中被问到的单向链表的反转问题,问题的解决方法有多种最普通的是从头到尾扫描链表,然后对链表进行反转。使用单个参数的递归方法;使用单个参数是相当于不断的往链表后部深入,并且在每次深入的递归中保存了下一个节点和当前节点的信息,再调用递归后处理当前节点和下一个节点的关系;其中比较有特点的处理过程是返回值的处理,每次递归后返回的指针为同一个;使用两个参数的递归方法,外加一个当前链表头节点的前一个结点的指针,在进一步递归之前处理好头节点和其前一个节点的关系。 1 #include 2 #include 3 using namespace std; 4 struct Node{ 5 ... 阅读全文
posted @ 2013-09-29 20:32 Little_T 阅读(9226) 评论(1) 推荐(2)