写在前面
本系列是<the c programming language>的第一章的读书笔记.在这一系列可以对c语言有一个总体的认识,而不必拘泥与细节.
Hello world
学好一门编程语言的唯一方法就是亲手写代码。我们的第一个程序是输出hello world。这个程序的c代码如下
1 2 3 4 5 6 7 |
#include <stdio.h> int main(void) { printf("hello world\n"); return 0; } |
那么怎么让这个程序运行呢?这与你的系统有关。在unix系统中,你需要把这个文件保存为后缀名为.c 例如hello.c 然后可以编译它
1 |
cc hello.c |
编译过程很安静的进行,产生一个a.out。运行它
1 |
a.out |
就会看到输出
hello world
解释
1 2 3 4 5 6 7 |
#include <stdio.h> //包含标准库 int main(void) //定义一个名字为main的函数,返回int值,不接收参数 { printf("hello world\n"); //main函数调用库函数printf来显示字符串 \n代表换行 return 0; } |
c语言程序一般包括函数和变量。函数可以进行计算,变量用来储存数据。在上面的程序中就有一个叫做main的函数,不过它有点特殊,因为每个c程序都是从main开始运行的。每个c程序都有main函数。
main函数经常会调用其它函数来完成工作。其它函数可以来自库函数,也可以使自己写的。
1 |
#include <stdio.h> |
这句话告诉编译器要包含标准输入输出库(the standard input/output library)。在许多c程序中这句话都出现在最上面。
在函数之间传递数据的一种方法就是调用的时候提供一系列的值,叫做参数。在本程序中,main函数不接收参数,因为是(void)。
函数中要进行的语句要用{}括起来。本例中main函数里面只有一条语句
1 |
printf("hello world\n"); |
函数调用的时候,先写他的名字,后面紧接着括号,括号里是它的参数。这句语句中 printf函数的参数是”hello world\n”。printf是一个库函数。
双引号里面的一串字符叫做字符串或字符常量。字符串总是用双引号括起来。现在它作为printf的参数。
字符串中的\n是一个换行符,它产生一个换行。如果没有它,就不会换行了。如果直接在字符串中输入换号会发生错误
1 2 |
printf("hello world "); |
这是错误的。
printf函数不会自动换行,所以这个程序可以这样写
1 2 3 4 5 6 7 8 |
#include <stdio.h> int main(void) { printf("hello"); printf(" world"); printf("\n"); } |
要注意\n表示的是一个字符,不是两个。因为换行符难以表示,所以用这种转义字符的方式。类似的还有很多。\t表示制表符\\表示\自己。