缘由
为了加强C语言基础,觉得阅读这本优秀的书籍。首先,我会总结一些我认为的要点,如果有优秀的例子和题,我也觉得需要记录下来。
1.1入门
- 程序运行过程:编写代码,编译,加载,运行,输入结果到某个地方(hello word的话)
- C语言程序无论大小,都是由变量和函数组成。函数的语句执行计算操作。变量则用于储存计算过错中使用的值
- #include <stdio.h> 告诉编译器,本程序包含标准的输入/输出库的信息。
- "hello world\n”,双引号括起来的字符序列称为字符串或字符串常量
- \n 表示换行符,这种被称为转义字符的字符表示无法输入或者看不见的东西:\t(制表符),\b(回退符),\"(双引号),\\(反斜杠本身)。\n (newline) \t (tab) \b (backspace) \" (double quote) \\ (backslash)
- printf函数不会自动换行
练习题
Exercise 1-1. Run the ``hello, world'' program on your system. Experiment with leaving out parts of the program, to see what error messages you get.
答:
#include <stdio.h>
int main(void)
{
printf("hello, world\n");
return 0;
}
linux 下,可以这样执行:
gcc -W -Wall -ansi -pedantic -o hello hello.c
如此会得到一个hello的输出,直接执行可以得到结果。
-w 关闭所有警告信息
-Wall 就是打开所有的警告。
-ansi : 关闭GNU扩展中与ANSI C相抵触的部分。 来源
-pedantic: 关闭所有的GNU扩展。 来源
-o 输出文件名,这里就是 hello
gcc --help可以获得帮助文档,也可以上网 官方。
Exercise 1-2. Experiment to find out what happens when prints's argument string contains \c, where c is some character not listed above.
答:
我觉得没有\c这个转移字符。其他转移字符如下:
转义字符
|
意义
|
ASCII码值(十进制)
|
\a
|
响铃(BEL)电脑会发出声音
|
007
|
\b
|
退格(BS) ,将当前位置移到前一列
|
008
|
\f
|
换页(FF),将当前位置移到下页开头
|
012
|
\n
|
换行(LF) ,将当前位置移到下一行开头
|
010
|
\r
|
回车(CR) ,将当前位置移到本行开头
|
013
|
\t
|
水平制表(HT) (跳到下一个TAB位置)
|
009
|
\v
|
垂直制表(VT)
|
011
|
\\
|
代表一个反斜线字符''\'
|
092
|
\'
|
代表一个单引号(撇号)字符
|
039
|
\"
|
代表一个双引号字符
|
034
|
\0
|
空字符(NULL)
|