0%

C语言核心语法(1):第一个C程序

大家好!这里是杰杰酱,以下内容有需要补充的,或者大家有什么意见或者建议,欢迎在评论区留言! 如果看到我会更新的,欢迎大家批评指正!


“The only way to learn a new programming language is by writing programs in it.”

— Brian W. Kernighan, 《The C Programming Language》

经典示例:Hello, World! 程序

1
2
3
4
5
6
#include <stdio.h>

int main() {
printf("Hello, World!\n");
return 0;
}

学习C语言的旅程,几乎都是从这个经典的“Hello, World!”程序起步的 —— 相信多数老师都会让大家先写下这段代码。

今天我们就借着它,拆解C语言的核心基础,迈出入门第一步。


📌 为什么要这样写?

1. int main():程序的入口

电脑运行程序时,必须明确“从哪里开始执行”——这是程序的核心起点。 C语言有个硬性规定:所有可执行程序都必须有且仅有一个main()函数,这就是程序的入口。

这部分实际上有多种写法:

  1. int main(void): 无参数,返回int类型(标准写法)

  2. int main(int argc, char *argv[]): 带参数,返回int类型(应该是在工程中的常用写法)

  3. signed main(): 与int main()相同,返回int类型. 一般在算法竞赛中,在使用了#define int long long后,才会使用。(具体原因,后面会作解释)

  4. void main(): 无返回值(最常见的非标准写法) (不建议使用)

  5. main(): 省略返回值类型(旧标准兼容写法) (不建议使用)


2. { ... }:代码块

main()后面的一对大括号{ },划定了这个入口函数的代码块范围,意思是:所有在{ }里的代码,都将被视为main()函数的一部分,会被顺序执行。

我们想让电脑做的所有操作(比如输出文字,或者数学运算),都必须写在这对大括号之间。

并不只是函数后面需要放代码块,其他的一些关键字后也要放,比如if、for、while等,后面会详细介绍。


3. printf("Hello, World!\n");:实现输出功能的核心指令

我们的目标是在屏幕上打印“Hello, World!”这句话

  • 而printf()正是C语言用来格式化输出的工具(print=打印,f=format,即格式化)。
  • 括号里的"Hello, World!\n"是要输出的内容(双引号包裹的是“字符串”)。
  • 末尾的\n是换行符,能让输出后光标自动换行。
  • 最后必须加;,这是C语言的“语句结束符”,告诉电脑“这条指令到这就完了”。

4. #include <stdio.h>:printf()的声明

电脑不会凭空认识printf()函数,因为它不是C语言的“内置默认功能”,而是在C语言“标准输入输出库”(简称stdio库)里的工具。

#include是C语言的预处理指令,作用相当于复制粘贴:在编译之前,#include <stdio.h>会在编译的时候把stdio头文件的所有内容(包含printf()的函数声明、使用规则)链接到当前程序中,告诉电脑:printf()是合法工具,该怎么调用它。

如果少了这一行,电脑会不认识printf(),程序就会报错。


5. return 0;:函数的“结束信号”

回到main()函数开头的int:return 0;就是履行这个约定。

当main()函数里的所有指令都执行完后,会向操作系统返回一个“0”,表示告诉系统:“这个程序正常执行完毕,没有出错”。

实际上,从C++11开始,return 0;可以不用写,因为编译器会隐式插入 return 0;,等价于显式书写。(但是这并不代表其他函数也不用return,这只是因为 main 函数比较特殊而已)


经过上面部分的学习,相信你一定清楚了一个基本的C程序需要包含什么东西了,希望这篇文章能帮助你入门C语言。

欢迎关注我的其它发布渠道