C语言入门——C语言常见概念
目录
一、第一个 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 码表中的所有数字,我们不需要全部记住,在使用的时候查看就可以,不过最好掌握几组特殊的数值。
- 字符 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 语言的语句类型的分类以及注释的使用方法
更多推荐


所有评论(0)