【C语言从入门到精通】—— 初识C语言

✨前言

C语言系列:博主是初次做这种,可能有一些不足之处,希望大家帮忙指出!说明一下该系列是对c语言从0到1的介绍😶‍🌫️,后续我会出汇总篇进行全面的综合整理。作为一个系统的教程,这个系列会持续推新的,所以关注博主🍻,在学习C语言的路上结伴前行吧!

🐶📑作者:@ Serein橘橘橘
🐶🐋专栏:C语言
🐶👤资源推荐:C语言程序设计从入门到进阶
🐶🚀一句话:该做的只求结果,想做的只问本心



一、工具的选择🔦

工欲善其事,必先利其器 ------ 正确的编译器会让我们事半功倍!

集成开发环境 ------ 选择VS2022

• VS2022是⼀个主流的集成开发环境,企业中使⽤较为普遍
• VS2022包含了:编辑器+编译器+调试器,功能强⼤
• 直接安装即可使⽤,基本不⽤额外配置环境,上⼿容易
• 默认界⾯是中⽂的,初学者友好

为什么不是其他集成开发环境(IDE)?

• CodeBlocks集成了gcc(这个⼯具⽐较⼩众,需要配置环境,不太推荐)
• DevC++集成了gcc(⼩巧,但是⼯具过于简单,对于代码⻛格的养成不好,⼀些竞赛使⽤)
• Clion是默认使⽤CMake,编译器是可以配置的(⼯具是收费,所以暂时不 推荐⼤家使⽤)

👉工具的下载安装:VS2022安装教程
( 视频肯定比博主讲的更清楚啦,大家按照视频安装就好 )


二、第一个C语言程序🎃

代码如下(示例):

#include <stdio.h>

int main()
{
	printf("hello world");
	return 0;
}

在上述程代码中出现了main函数、printf函数等,下面将会详细阐述。


三、main函数🧢

main函数也叫 主函数

main前面的 int 表示 main函数执⾏结束的时候返回⼀个整型类型的值。所以在 main函数的最后写 return 0; 正好前后呼应。

• main函数是程序的⼊⼝ — C语言程序从main函数的第一行开始执行
• main函数 有且仅有⼀个
• 即使⼀个项⽬中有多个.c⽂件,但是只能有⼀个main函数(因为程序的⼊⼝只能有⼀个)

( 相信你对上面没提到的细节有些疑惑,但还是那句话,先接受现有的知识,其他的以后都会懂🤪)


四、printf和库函数🍰

库函数: C语言标准规定的一组函数组成了一个函数库(标准库),这些函数被称为库函数。使用库函数时,需要包含头文件。引用的方式是 #include< xx.h >,xx指该库函数对应的头文件。

上述程序的printf就是一个库函数, 接下来我们认识一下😃

print的功能:在标准输出设备(⼀般指屏幕)上进⾏信息的打印。

#include <stdio.h>

int main()
{
	printf("%d\n", 100);//%d - 打印整数
	printf("%c\n", 'a');//%c - 打印字符
	printf("%f\n", 3.14);//%f - 打印小数 - 默认小数点后会打印6位
	printf("%lf\n", 3.14); //打印双精度浮点型
	printf("%s\n", "abcdef");//%s - 打印字符串
	printf("abcdef\n");//"abcdef" - 双引号括起来的一串字符称为:字符串
	return 0;
}

这里的%d,%c等是占位符,会被后边的值替换。( 还是那句话,后续会具体介绍)

👉库函数⽐较多,可参考链接:https://cplusplus.com/reference/clibrary/


五、关键字👾

关键字又称为保留字。不能自创,创建标识符时不能和关键字重复

C语⾔的32个关键字如下:👉 (全:C 关键词 - cppreference.com)

C语言32个关键字
Tip: 在C99标准中加入了:inline、restrict、_Bool、_Complex、_Imaginary


六、字符和ASCII码表🐼

C语言中用单引号括起来的称为:字符

👉ASCII码表
在这里插入图片描述

记住下面这些就好:

• 字符A~Z的ASCII码值从65 ~ 90
• 字符a ~ z的ASCII码值从97~122
• 对应的⼤⼩写字符( a和A )的ASCII码值的差值是32
• 数字字符0~ 9的ASCII码值从48~57
• 换⾏\n的ASCII值是:10
• 在这些字符中ASCII码值从0~31这32个字符是不可打印字符,⽆法打印在屏幕上观察


七、字符串和\0🦔

C语言中使⽤双引号括起来的⼀串字符就被称为字符串

字符串的打印格式可以使⽤%s 来指定,也可以直接打印如下:

#include <stdio.h>

int main()
{
	printf("%s\n", "hello C");
 	printf("hello c");

	return 0;
 }

在字符串的末尾隐藏放着⼀个\0字符,这个\0字符是字符串的结束标志

C语⾔中可以把⼀个字符串放在⼀个字符数组中,我们在这⾥利⽤以下代码验证:

#include <stdio.h>

int main()
{
	char arr1[] = {'a', 'b', 'c'};//arr1数组中存放3个字符
	char arr2[] = "abc"; //arr2数组中存放字符串
	printf("%s\n", arr1);
	printf("%s\n", arr2);
	
	return 0;
 }

现在按F10调试 来观察arr1和arr2的内容。敲黑板❗一定要进入调试状态,不然看不到

在这里插入图片描述
在这里插入图片描述
通过调试,我们可以观察到\0的存在😐

运行结果:
在这里插入图片描述

• arr1 字符数组在打印的时候,打印了a、b、c后还打印了⼀些随机值,这就是
因为arr1在末尾的地⽅没有\0字符作为结束标志,在打印的时候没有停⽌。
• arr2的打印就是完全正常的,就是因为arr2 数组是使⽤字符串常量初始化的,数组中有\0作为结束标志,打印可以正常停⽌。

如果我们在arr1数组中单独放⼀个’\0’字符会怎么样呢?

在这里插入图片描述
由上可见:三次打印的结果一样,都是打印到\0的时候就停⽌了


八、转义字符🐉

引入:我们现在猜测一下下面的结果是什么

#include<stdio.h>

int main()
{
	printf("c:\test\test.c");

	return 0;
}

来揭晓答案😉

在这里插入图片描述

为什么会这样呢?其实就是转义字符在作怪。那到底什么是转义字符👈

转义字符 顾名思义:转变原来的意思的字符

C语⾔中像这样的转义字符还有⼀些,具体如下:

转义字符意义
\?在书写连续多个问号时使⽤,防⽌他们被解析成三字⺟词
\’⽤于表⽰字符常量’
\"⽤于表⽰⼀个字符串内部的双引号
\\⽤于表⽰⼀个反斜杠,防⽌它被解释为⼀个转义序列符
\a警报,这会使得终端发出警报声或出现闪烁,或者两者同时发⽣
\b退格键,光标回退⼀个字符,但不删除字符
\f换⻚符,光标移到下⼀⻚。在现代系统上,这已经反映不出来了,⾏为改成类似于\v
\t制表符,光标移到下⼀个⽔平制表位,通常是下⼀个4/8的倍数( 对齐)
\v垂直分隔符,光标移到下⼀个垂直制表位,通常是下⼀⾏的同⼀列
\dddddd表⽰1~3个⼋进制的数字
\xdddd表⽰2个⼗六进制数字
\0null字符,代表没有内容,\0就是\ddd这类转义字符的一种,用于字符串的结束标志,其ASCII码值是0

C语言支持三字母词:

??)     解析为  ]
??(     解析为  [
??>    解析为  }
??<    解析为  {

现在我们用代码来演示一下

#include <stdio.h>

int main()
{
	printf("(are you ok??)");//本意想打印(are you ok??)
	//运行结果:(are you ok]
	return 0;
}

习题🐰:

#include <stdio.h>

int main()
{
	printf("%zd\n", strlen("c:\test\bit\118\test.c"));
	
	return 0;
}

答案:17
解析:①一个转义字符虽然由多个符号组成,但计算字符个数时,当成一个
           ②\118虽然有三个数字,但8不可能是8进制的数字,所以看作\11和8
c    :   \t    e    s    t   \b   i    t    \11    8    \t    e    s    t    .   c    -------- 共17个

十进制:0~9
二进制:0和1
八进制:0~7
十六进制:0~15(f)


九、语句和语句分类🐨

C语⾔的代码是由⼀条⼀条的语句构成的,C语⾔中的语句可为以下五类:

• 空语句
• 表达式语句
• 函数调⽤语句
• 复合语句
• 控制语句

1.空语句

空语句是最简单的,⼀个分号就是⼀条语句,是空语句

#include <stdio.h>

int main()
{
	;//空语句
 
	return 0;
}

空语句 ⼀般出现的地⽅是:这⾥需要⼀条语句,但是这个语句不需要做任何事

2.表达式语句

表达式语句就是在表达式的后边加上分号

#include <stdio.h>

int main()
{
	int a = 20;
	int b = 0;
	b = a + 5; //表达式语句

	return 0;
}

3.函数调用语句

函数调⽤的时候,也会加上分号,就是函数调⽤语句

#include <stdio.h>

int Add(int x, int y)
{
	return x+y;
}
int main()
{
	printf("hehe\n");//函数调⽤语句
	int ret = Add(2, 3);//函数调⽤语句

	return 0
}

4.复合语句

复合语句其实就是代码块,成对括号中的代码就构成⼀个代码块,也被称为复合语句

#include <stdio.h>

void print(int arr[], int sz) //函数的⼤括号中的代码也构成复合语句
{
	int i = 0;
	for(i=0; i<sz; i++)
	{
		printf("%d ", arr[i]);
	}
}

int main()
{
	int i = 0;
	int arr[10] = {0};
	for(i=0; i<10; i++) //for循环的循环体的⼤括号中的就是复合语句
	{
		arr[i] = 10-i;
		printf("%d\n", arr[i]);
	}
	
	return 0;
}

5.控制语句

控制语句⽤于控制程序的执⾏流程,以实现程序的各种结构⽅式(C语⾔⽀持三种结构:顺序结构、选择结构、循环结构),它们由特定的语句定义符组成,C语⾔有9种控制语句

  1. 条件判断语句 / 分⽀语句:if语句、switch语句;
  2. 循环执⾏语句:dowhile语句、while语句、for语句;
  3. 转向语句:break语句、goto语句、continue语句、return语句

( 相信你对上面没提到的细节有些疑惑,但还是那句话,先接受现有的知识,其他的以后都会懂🤪)


十、注释☃️

注释是对代码的说明,编译器会忽略注释,so 注释对实际代码没有影响

1. / *… */的形式

将注释放在//之间,内部可分行,可插在行内,不支持嵌套注释

2. //的形式(推荐)👈

将注释放在//之后,单行,可放在行首/结尾

Tip: 不管是哪⼀种注释,都不能放在双引号⾥⾯。双引号⾥⾯的注释符号,会成为字符串的⼀部分,解释为普通符号,失去注释作⽤

注释会被替换成一个空格

注释的快捷键:Ctrl + /


✨总结

写到这里偷摸说已经六千多字了(Markdown里),初次写文难免有不足之处,但还是感谢你的耐心阅读,我会继续努力的!😝都看到这里了,给博主我个一键三连吧!!!感谢你的支持!!!

戳这里👉C语言系列已更新——数据类型和变量

在这里插入图片描述

评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值