- 《21天学通C语言》 第六版
编辑、编译、链接、测试
编译时一个错误可能引起多条错误消息
链接时错误大多来自库函数拼写错误
库函数
编译指令
包含文件(头文件)
加粗样式
变量、常量是命名的数据存储位置
变量名只能是数字、字母、下划线。数字不能在开头。不能用C语言的关键字。如double。
typedef指定新名称。如typedef int integer; integer count;
字面常量、符号常量。符号常量是表示字面常量的符号
定义常量
#define PI 3.1415926
#define CONSTNAME literal
const int count = 100;
const float pi = 3.14159;
const long debt = 120000000, const float tax_rate = 0.21;
define可以位于任何位置,不过定义的常量只在后面的源代码中有效
define需要#不用;,const需要声明变量以及;。
const与define的区别涉及指针和变量作用域。
语句中的空白被忽略,字面字符串常量的空格不能忽略。字面字符串常量放在多行中必须在换行之前加上反斜杠\。
代码块(语句块)中花括号最好单独占一行,并对齐。
算数、关系、逻辑运算符
单目运算符
递增递减前后缀不同。前缀先计算递增或递减再计算表达式,后缀先计算表达式再计算递增或递减。
x = 10;
y = x++;
// 结果x=11,y=10
x = 10;
y = ++x;
// 结果x=11,y=11
sizeof()也是单目运算符不是函数
&&、||、!
非的优先级最高,与或最低,与高于或。
/* 说明与&&优先级大于或|| */
#include <stdio.h>
int a = 5, b = 6, c = 5, d = 1;
int x;
int main(void)
{
x = a < b || a < c && c < d;
printf("\n没有括号时结果为x=%d", x);
x = (a < b || a < c) && c < d;
printf("\n有括号时结果为x=%d", x);
return 0;
}
复合赋值运算符
x *= y; y -= z+1; a /= b; x += y/8; y %= 3;