一、第一个 C 语言程序

#include<stdio.h>

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

这是一段简单的 C 语言代码,它的作用是在控制台打印 Hello World 并后在后面接上换行符,下面我们来拆解一下这段程序。

1. main 函数

每个 C 语言的程序不管有多少行代码都是从 main 函数开始执行的,它相当于是 C 语言程序的入口,main 函数又叫做主函数。main 前面的 int 表示 main 函数执行结束的时候返回一个整型类型的值,这与末尾的 return 0; 语句正好呼应。需要注意的是,程序的入口有且仅有一个,因此 main 函数在一个项目中无论是有几个 .c 文件也只能存在一个。

2. 库函数和 printf 函数

在上面的代码中有这样两句代码:

#include<stdio.h>

printf("Hello World\n")

首先来简单介绍一下 printf 函数,printf 是一个库函数,它的功能是在标准输出设备(一般指屏幕)上进行信息的打印。上面的的代码是使用 printf 函数进行字符串 Hello World 的打印。只需要将字符放到 “ ” 中即可。printf 函数亦可用来其它的类型数据的打印,比如:

int num = 100;
printf("%d\n", num);  // printf 打印整型
printf("%c\n", 'q');  // printf 打印字符
printf("%lf\n", 3.14);  // printf打印双精度浮点型 

其中%d%c 等是占位符,后边的值会将其替换打印到屏幕上。

接下来解释一下 #include<stdio.h> ,在使用库函数的时候,需要包含头文件。例如:使用 printf 函数就需要包含 stdio.h 这个头文件,具体的使用方法就是:

#include<stdio.h>

阅读完上述内容相信读者肯定有这样一个疑问产生:什么是库函数?为了不再重复实现常见的代码,让程序员提升开发效率,C 语言标准规定了一组函数,这些函数再由不同的编译器厂商根据标准进行实现,提供给程序员使用。这些函数组成了一个函数库,被称为标准库,这些函数也被称为库函数。一个系列的库函数一般声明在一个头文件中,所以库函数的使用要包含对应的头文件。
了解库函数可以参考链接:https://cplusplus.com/reference/clibrary/

二、基础语法要素

1. 关键字介绍

C 语言中有一批保留的名字的符号,比如:int、if、return,这些符号被称为保留字或者关键字。我们需要注意的是:关键字都有特殊的意义,是保留给 C 语言使用的;程序员自己在创建标识符的时候是不能和关键字重复的;关键字也是不能自己创建的。

  • 数据类型相关:int, char, float…
  • 控制语句:if, else, for, while…
  • 存储类:auto, static, extern…
  • 其他:return, sizeof, typedef…

2. 字符、字符串和 ASCII 编码

在键盘上可以敲出各种字符,如:a,q,@,# 等,这些符号都被称为字符,在C语言中字符是用单引号括起来的,如:‘a’,‘b’,‘@’,‘#’。

将一串字符用双引号括起来就形成了字符串,例如:“abcdef”,就是一个字符串,字符串的打印格式可以用 %s 来指定,需要注意的是,字符串的末尾隐藏着一个 \0 字符,作为字符串的结束标志表示字符串的结束。

我们知道在计算机中所有的数据都是以二进制的形式存储的,那这些字符在内存中分别以什么样的二进制存储的呢?如果我们每个人自己给这些字符中的每个字符编⼀个二进制序列,这个叫做编码,为了方便大家相互通信,不造成混乱,后来美国国家标准学会(ANSI)出台了⼀个标准ASCII编码,C 语言中的字符就遵循了 ASCII 编码的方式。
这是 ASCII 码表
对于 ASCII 码表中的所有数字,我们不需要全部记住,在使用的时候查看就可以,不过最好掌握几组特殊的数值。

  • 字符 A~Z 的 ASCII 码值范围是 65~90
  • 字符 a~z 的 ASCII 码值范围是 97~122
  • 对应的大小写字符的 ASCII 码值的差值是 32
  • 换行 \n 的 ASCII 码值是:10
  • 在这些字符中 ASCII 码值在 0~31 中的这 32 个字符是不可打印字符,无法打印在屏幕上观察
单个字符的打印可以使用 %c 来指定格式:
#include<stdio.h>

int main()
{
	printf("%c\n", 'Q');
	print("%c\n", 81);
	return 0;
}

3. 转义字符

在前面的代码中出现的 \n\0 你可能不知道是什么。其实这是字符中的一组特殊字符被称成为转义字符,其作用是转变字符原来的意思
\n 是一个转义字符表示换行的意思,我们可以简单地理解为 \n 的意思发生了转变,使其变成了换行的意思。C 语言中还有其他像这样的转义字符:

  • ':用于表示字符常量 ’
  • ":用于表示一个字符串内部的双引号
  • \:用于表示一个反斜杠,防止它被解释为一个转义序列符
  • \a:警报,这会使得终端发出警报声或出现闪烁,或者两者同时发生
  • \b:退格键,光标回退一个字符,但不删除字符
  • \n:换行符
  • \r:回车符,光标移到同一行的开头
  • \t:制表符,光标移到下一个水平制表位,通常是下一个 4 or 8 的倍数
  • \v:垂直分隔符,光标移到下一个垂直制表位,通常是下一行的同一列
  • \ddd:d d d 表示 1~3 个八进制的数字。 如:\130 表示字符 X
  • \xdd:d d 表示 2 个十六进制数字。 如:\x30 表示字符0
  • \0:null 字符,表示无内容。
#include<stdio.h>

int main()
{
	printf("%c\n", '\'');
	printf("%s\n", "\"");
	printf("c:\\test\\code\\test.c\n");
	printf("\a");
	printf("%c\n", '\130');  // 130 是 8 进制,转换成 10 进制是 88,以 88 作为 ASCII 码值的字符是 'X' 
	printf("%c\n", '\x30');  // x30 中的 30是 16 进制,转换成 10 进制是 48,以 48 作为 ASCII 码值的字符是 '0'
	
	return 0;
}

4. 语句和语句分类

语句可以分成五大类:空语句表达式语句函数调用语句复合语句以及控制语句

  • 空语句
    空语句是最简单的,一个分号就是一条语句,是空语句。一般用于:需要一条语句,但是这条语句不需要做任何事,就可以写一个空语句。
  • 表达式语句
    表达式语句就是在表达式的后面加上分号。
  • 函数调用语句
    函数调用的时候,也会加上分号,就是函数调用语句。
  • 复合语句
    复合语句又叫做代码块,成对大括号中的代码构成一个代码块。
这里用一段代码说明上述四种语句
#include<stdio.h>
int Add(int x, int y)  // 函数的大括号中的内容构成复合语句
{
	return x + y;
}

void Print(int arr[], int sz)  // 函数的大括号中的就是复合语句
{
	int i = 0;
	for(int = 0; i < sz: i++)
	{
		printf("%d ", arr[i]);
	}
}

int main()
{
	;  // 空语句
	
	int a = 10;
	int b = 0;
	b = a + 5;  // 表达式语句
	
	printf("Hello World\n");  // 函数调用语句
	int ret = Add(2, 3);  // 函数调用语句
	
	int arr[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
	for(int i = 0; i < 10; i++)  // for 语句的循环体的大括号中的语句是复合语句
	{
		printf("%d\n", arr[i]);
	}
	return 0;
}
  • 控制语句
    控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C 语言支持三种结构:顺序结构、选择结构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句,大致可以按照如下方式分类:
  • 条件判断语句也叫分支语句:if 语句、switch 语句
  • 循环执行语句:while 语句、for语句、do while 语句
  • 转向语句:break 语句、goto语句、continue 语句、return语句
    这些内容在后面学习。

5. 注释

注释是对代码的说明,运行代码时会忽略注释,也就是说注释对实际代码没有影响,却能帮助程序员理解代码。但需要注意的是不要过度注释,不要写没有必要的注释。
C 语言的注释有两种形式:/**/ 形式和 // 形式,其中 /**/可以多行注释,也可以单行注释。而 // 形式只能单行注释。需要注意的是 /**/ 形式的注释一定不要忘记写结束符号 `*/

print("Hello World")  /*这是一行注释*/
/*这是多行注释
第一行注释
第二行注释*/

printf('"Hello World"')  // 这是一行注释  

总结

本文通过引入一个简单的 C 语言程序,简要介绍了 C 语言的基本知识的轮廓,其中主要介绍了关键字、字符串、转义字符、C 语言的语句类型的分类以及注释的使用方法

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐