摘要:
解释一: 每个特定平台上的编译器都有自己的默认“对齐系数”(也叫对齐模数)。程序员可以通过预编译命令#pragma pack(n),n=1,2,4,8,16来改变这一系数,其中的n就是你要指定的“对齐系数”。 规则: 1、数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一 阅读全文
摘要:
这是程序员面试的一道常见题,也是个C++基础问题。若只在大学里看过几本基础的编程入门书,看见这道题可能会觉得奇怪,不就是和0比较吗,直接拿出来比就是了,其实非也。下文引自google搜索结果,出处不详,高手可以无视,菜菜留下,记得做好笔记。首先给个提示:题目中要求的是零值比较,而非与0进行比较,在C 阅读全文
摘要:
在标准C和C++中0长数组如charArray[0]是不允许使用的,因为这从语义逻辑上看,是完全没有意义的。 但是,GUN中却允许使用,而且,很多时候,应用在了变长结构体中,如: 首先对0长数组做一个解释: 用途 :长度为0的数组的主要用途是为了满足需要变长度的结构体。 用法 :在一个结构体的最后 阅读全文
摘要:
题目:将一个n元一维数组a[n]左移i个位置。例如,当n=8,i=3时,数组abcdefgh旋转为defghabc。请设计一个算法完成这个任务。 1. 块交换法: 分析:将n元一维数组a[n]分解为两块,将第一块存储在临时数组中,将第二块前移i个单位,再将临时数组加入到第二块后面。 如:n=8,i= 阅读全文
摘要:
题目 Write a method to decide if two strings are anagrams or not. 写一个函数判断两个字符串是否是变位词。 解答 变位词(anagrams)指的是组成两个单词的字符相同,但位置不同的单词。 比如说, abbcd和abcdb就是一对变位词。 阅读全文