第2章 基本概念
Posted astralcon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第2章 基本概念相关的知识,希望对你有一定的参考价值。
2.7 问题
1. 由于注释是不能嵌套的,只需要找到第一个/*开头然后找到第一个*/结尾(以此类推),这就是一个注释。通过程序可知,End of commneted-out code */这个是没有配套的/*,故此不为注释,程序发生错误。
2.
缺点:对文件的一点修改,都会重新编译这个大文件,会比只重新编译需要修改的小文件耗时。
不易阅读,不易维护。
优点:编译时间短。
3. "Blunder??!??"
4.
40 = 32; 100 = 64; /x40 = 64; /x100 = 256; /0123 = 83; /x0123 = 291
上面是我第一次的答案,错的很正常~ P23有个注意:如果结果值的大小超出了表示字符的范围,其结果就是未定义的。
/40 = 32 = 空格字符;
/100 = 64 = ‘@‘;
/x40 = 64 = ‘@‘;
/x100占据了12位(0001 0000 0000)(尽管前三位为0)。在绝大多数机器上,这个值过于庞大,无法存储于一个字符内,所以它的结果因编译器而异;
/0123由两个字符组成,‘/012’和‘3’,其值因编译器而异;
/x0123过于庞大,无法存储于一个字符内,其值因编译器而异。
5. 错误,不能简单理解为int xy; P23注释有句话说的很清楚:所有的注释都会被预处理器拿掉,取而代之的是一个空格。
6. 没有错误。
7. 对也不对。由于C的自由形式,如果只是想简单的将程序写出来,能够正常运行,程序的样子当然无关紧要;但是,如果是一个大工程,以后需要维护和修改,则程序写的美观整洁,非常节省时间和金钱。
8. 两个程序的循环都错误,第二个程序更容易检查其正确性-->{}的匹配
9.
cc main.c list.c report.c
10.
cc main.c list.c report.c -lparse
11.
//文件 //重新修改文件 list.c list.c list.h list.c table.h main.c table.h main.c table.c
2.8 编程练习
1.
#include<stdio.h> int negate(int x); int increment(int x); int main() { int x, y, z; x = negate(10); y = increment(0); z = negate(-10); printf("%d %d %d ", x, y, z); return 0; } int negate(int x) { return -x; } int increment(int x) { return x + 1; }
2.
/*检查一个程序的花括号对*/ #include<stdio.h> #include<stdlib.h> int main() { char c; int braces = 0; /*逐个字符读取程序*/ while ((c = getchar()) != EOF) { /*左花括号始终是合法的*/ if (c == ‘{‘) braces++; /*右花括号只有当它和一个左花括号匹配时才是合法的*/ if (c == ‘}‘) if (braces == 0) printf("Extra closing brace "); else braces--; } /*没有更多输入:验证不存在任何未被匹配的左花括号*/ if (braces > 0) printf("%d unmatched opening brace(s)! ", braces); return EXIT_SUCCESS; }
以上是关于第2章 基本概念的主要内容,如果未能解决你的问题,请参考以下文章