程序结构与基础语法
概念说明
一个最小的 C 程序通常包含头文件引用、函数定义、变量声明、表达式和语句。 编译器依靠关键字、分号、花括号和标识符来理解程序结构,所以这些最基础的书写规则一开始就要养成习惯。
C 代码里的空白符主要服务于可读性。 多数情况下,空格、缩进和换行不会改变程序含义,但它们会直接影响你以后能不能快速看懂自己的代码。
此外,初学阶段经常被混淆的还有几个概念:
标识符:程序员自己起的名字,例如变量名、函数名。关键字:语言保留字,例如int、return、if。表达式:会产生值的代码片段,例如a + b。语句:完成一个完整动作的最小执行单位,例如sum = a + b;。
语法/规则
#include用来引入头文件,让编译器知道函数声明、类型声明和宏定义。main是程序入口,普通可执行语句必须写在函数体内部。- 一条完整语句通常以分号
;结束,代码块使用{}包裹。 - 标识符只能由字母、数字和下划线组成,且不能以数字开头。
- 关键字不能作为标识符使用,例如不能把变量命名为
int、return或while。 - 单行注释使用
//,多行注释使用/* ... */,多行注释不能嵌套。 - C 对大小写敏感,
sum、Sum和SUM是三个不同名字。 - 相邻字符串字面量会自动拼接,但普通表达式不会自动跨行拼接。
示例
| |
输出结果:
| |
这个例子里,first + second 是表达式,int sum = first + second; 和 printf(...) 都是语句。
用这种方式去区分“值”和“动作”,后面读复杂代码会更轻松。
常见错误
- 漏掉分号,结果编译器往往在下一行才报错,看起来像“报错位置不对”。
- 把可执行语句写在函数外面,忘了 C 里的普通语句必须放在函数体中。
- 使用关键字作为变量名,或者把大小写不同但含义接近的名字混着用。
- 把
/* ... */当成可嵌套注释,结果在较长注释中提前结束注释块。 - 过度省略空格和换行,导致程序虽然能编译,但阅读和排错非常困难。