C语言 C,是一种通用的程序设计语言,它主要用来进行系统程序设计。具有高效、灵活、功能丰富、表达力强和移植性好等的特点,在程序员中备受青睐。 C语言的特色 C语言是系统程序语言。流行的操作系统核心部分几乎无一例外的选择了C语言。 C语言保留了低级语言的特性,例如C语言允许使用指针来对任意内存做直接修改。 C语言使用了预处理机制,使得程序员可以在编译源程序之前对程序结构做出控制。常用的预处理机制包括宏与编译选择等。 第一个程序: #include int main(void) { printf("Hello, world!\n"); return 0; } 进一步了解C C语言由函数和变量组成。C的函数就像是Fortran中的子程序和函数。 在C语言中,程序从main开始执行。main函数通过调用和控制其他函数进行工作。例如上面的printf。程序员可以自己写函数,或从库中调用函数。在上面的return 0;使得main返回一个值给调用程序的外壳,表明程序已经成功运行。 一个C语言的函数由返回值、函数名、参数列表(或void表示没有返回值)和函数体组成。函数体的语法和其它的复合的语句部分是一样的。 复合语句 C语言中的复合语句(或称语句块)的格式为: {语句;语句;……} 复合语句可以使得几个语句变成一个语句。 但一般情况下,我们不推荐这样多个语句顺序书写, 因为这样会使其可读性减弱,加大代码维护难度。 条件语句 C语言有三种条件语句形式。两种是if,另一种是switch。 两种if包括: if (条件表达式) 语句; 以及 if (条件表达式) 语句; else 语句; 在条件表达式中,任何非零的值表示条件为真;如果条件不满足,程序将跳过if后面的语句,直接执行if后面的语句。但是如果if后面有else,则当条件不成立时,程序跳到else处执行。 switch通常用于对几种有明确值的条件进行控制。它要求的条件值通常是整数或字符。与switch搭配的条件转移是case。使用case后面的标值,控制程序将跳到满足条件的case处一直往下执行,直到语句结束或遇到break。通常可以使用default把其它例外的情况包含进去。如果switch语句中的条件不成立,控制程序将跳到default处执行。switch是可以嵌套的。 switch (<表达式>) { case <值1> : <语句> case <值2> : <语句> default : <语句> } 循环语句 C语言有三种形式的循环语句: do <语句> while (<表达式>); while (<表达式>) <语句>; for (<表达式1> ; <表达式2> ; <表达式3>) <语句>; 在while和do中,语句将执行到表达式的值为零时结束。在do...while语句中,循环体将至少被执行一次。这三种循环结构可以互相转化: for (e1; e2; e3) s; 相当于 e1; while (e2) { s; e3; } 当循环条件一直为真时,将产生死循环。 跳转语句 跳转语句包括四种:goto,continue,break和return。 goto语句是无条件转移语句: goto 标记 标记必须在当前函数中定义,使用“标记:”的格式定义。程序将跳到标记处继续执行。由于goto容易产生阅读上的困难,所以应该尽量少用。 continue语句用在循环语句中,作用是结束当前一轮的循环,马上开始下一轮循环。 break语句用在循环语句或switch中,作用是结束当前循环,跳到循环体外继续执行。但是使用break只能跳出一层循环。在要跳出多重循环时,可以使用goto使得程序更为简洁。 当一个函数执行结束后要返回一个值时,使用return。return可以跟一个表达式或变量。如果return后面没有值,将执行不返回值。 在C99中运算符号 () [] -> . ! ++ -- (cast) 括号、成员、逻辑非、自加、自减、强制转换 ++ -- * & ~ ! + - sizeof 单目运算符 * / % 算术运算符 + - 算术运算符 << >> 位运算符 < <= > >= 关系运算符 == != 关系运算符号 & 位与 ^ 位异或 | 位或 && 逻辑与 || 逻辑或 ?: 条件运算符 = += -= *= /= %= <<= >>= &= |= ^= 赋值运算符 , 顺序运算符 数据类型 基础数据类型