10 2010 档案
摘要:第三章 “语义”陷阱1-1. 一维数组 数组名a 除了用作运算符sizeof的参数这一情形外,在其他所有的情形中数组名a都代表指向数组a中下标为0的元素的指针a[i] 与 i[a] 的含义相等1-2. 二维数组: int calendar [12][31]; calendar[4] 是calendar的第五个元素,是calendar数组中12个有关31个整形元素的数组之一。...
阅读全文
摘要:书摘和感想书摘:{ 如果我们按照费道罗夫的意思去再现柳比歇夫,或者说,使柳比歇夫“复活”,做起来大概比其他任何一个人的“复活”都要容易,都要准确。因为有大量的资料和材料;换句话说,数据很多。他的一生切空间和时间坐标都可以复制,某一天他在什么地方,都干了些什么,看了些什么书,都见到谁了,到哪儿去了。}[柳比歇夫以翔实的记录,描绘了其一生的轨迹。]时间·事件日志:书摘:{ 乌里扬诺夫斯克。一九六四年四月七日,分类昆虫学(画两张无名袋蛾的图) —— 三小时十五分。鉴定袋蛾—— 二十分 (1.0)附加工作:给斯拉瓦定信 —— 二小时四十五分 (0.5)社会工作:植物保护小组开会 —— 二小时二十五分休
阅读全文
摘要:第一章 词法“陷阱” 1. = 与 ==,在条件判断表达式时将”==”写成”=”这几乎是最容犯的一种错误,而且更为糟糕的是,编译器对此不会报错。产生这种错误的原因是,== 操作符左边是个左值,如果操作符两边都是右值就不会发生这种情况。因为,即使错将”==”写成了”=”,编译器将捕获这个语法错误(原因是”=”左边必须是左值)。一种解决方案是:将表达式中的左值放在操作符右边。如: int a = ...
阅读全文
摘要:通常我们有两种途径认识事物,一种是演绎,另外一种是归纳。演绎是从一般性的原理出发,根据某些逻辑规则,推导出特殊性或个别性的知识。在一般的情况下,演绎推理的结论,在不超出前提的条件下,如果前提是真,那么其推理结论也必然是真。所以,演绎推理方法,是一种必然性的思维活动方法。如: 所有人是有死的, 苏格拉底是人, 所以,苏格拉底是有死的。 前两句是前提,陈述被设定为真的事实。演绎过程是从前两句推...
阅读全文
摘要:Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be: 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... Find the sum of al...
阅读全文
摘要:If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23. Find the sum of all the multiples of 3 or 5 below 1000. 题目要求:求1000以内...
阅读全文
摘要:定义:任何一个整数的立方都可以写成一串相邻奇数之和(因为如果不是一串相邻的奇数,这个组合可能会有多个),这就是著名的尼科梅彻斯定理。如:1(3) = 12(3) = 3 + 53(3) = 7 + 9 + 114(3) = 13 + 15 + 17 + 19… …要求:输入任意整数n,求n(3)是哪些相邻奇数和 算法分析:从上面的式子,我们可以得出以下推论: 1. 整...
阅读全文
摘要:1. size_t 类型 size_t是一种无符号的整型数,它在头文件中typedef为unsigned int类型,unsigned int随着编译平台不同,其长度可能不一样,而size_t则希望保持不变。当换了平台之后,只需要重新定义size_t到新的类型,就可以不修改任何库就可以使用。该类型保证能容纳实现所建立的最大对象的字节大小。 C99中定义格式输出符为%zd,若编译器不支持可以尝试%u...
阅读全文
摘要:1. 位域的定义 有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。每个...
阅读全文
摘要:1. 什么是结构对齐和对齐的作用现代计算机中内存空间都是按照byte(字节)划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是结构对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些...
阅读全文
摘要:先来看看这两个概念是如何定义的:副作用(side effect)是对数据对象或文件的修改。顺序点(sequence point)是程序执行中的一点,在该点处,所有的副作用都在进入下一步前被计算。在C中,语句后面的分号标志了一个顺序点。任何完整表达式(full expression)运算结束的那个时间点也是顺序点。所谓完整表达式,就是说这个表达式不是子表达式。而所谓的子表达式,则是指表达式中的表达式...
阅读全文
摘要:位运算符都是对二进制位操作的运算符,所以它只能对整形(包括字符型)数据运算,运算前也需转换为二进制。移位原则,移出的位数全部丢弃,移出的空位补入的数与左移还是右移有关。如果是左移,则规定补入的数全部是0;如果是右移,还与被移位的数据是否带符号有关。若是不带符号数,则补入的数全部为0;若是带符号数,则补入的数全部等于原数的最左端位上的原数(即原数的符号位)。在移位运算符前,先理解下带符号位的表达方式...
阅读全文
摘要:说到“左右法则”无一例外的都先搬出C标准中的原文:The right-left rule: Start reading the declaration from the innermost parentheses, go right, and then go left. When you encounter parentheses, the direction should...
阅读全文
摘要:函数sscanf与scanf功能相同(更多的是将它划为字符串分割函数),对于scanf,是从标准流输入读取字符,对于sscanf则是从字符串中读取字符,函数原型为: int sscanf (char *s, const char * format, ...); 返回值为返回参数数目,失败则返回-1 第一个参数可以是一个或多个 {%[*] [width] [{h | l | I64 | L}]...
阅读全文
摘要:1. 不要对浮点数使用该运算符,那将是无效的。2. 如果第一个操作数为负数,那么得到的模也为负数;如果第一个操作数为正数,那么得到的模也为正数。3. 取模公式:a % b == a - (a/b) * b——以上来自《C Primer Plus》第五章 运算符、表达式和语句
阅读全文
浙公网安备 33010602011771号