大家好,欢迎来到我的C语言专栏,我会将自己学到的知识以自己的理解分享给大家,希望大家可以和我一起共同进步,从C语言小白一步一步成为大佬
🌈个人主页
📚C语言专栏
👀STM32专栏
文章目录
- 前言
- 1、 C语言是什么?
- 2、 C语言的发展历史
- 3、 VS项目、源文件和头文件
- 4、我的第一个C语言程序
- 5、main函数
- 6、printf函数
- 7、关键字介绍
- 8、字符和ASCII编码
- 9、字符串和\0
- 10、转义字符
- 11、语句和语句分类
- 11.1 空语句
- 11.2 表达式语句
- 11.3 函数调用语句
- 11.4 复合语句
- 11.5 控制语句
- 12. 什么是注释?为什么要写注释?
- 12.1 注释的方法
- 13. VS小技巧
- 13.1 改变字体大小
- 13.2注释和取消注释
- 13.3运行代码
- 13.4跳到行首和行尾
- 14. 结语
前言
在这篇文章中我将为初学C语言的朋友们介绍一下C语言,带大家初步了解C语言,看了这篇文章我相信你一定会有很大的收获,并且会对C语言有一个基本的了解
1、 C语言是什么?
人与人的交流使用自然语言,如汉语、英语、日语等。C语言虽然名字中有“语言”二字,但它并非用于人与人之间的交流,而是人与计算机之间的交流,计算机无法理解自然语言,只能读懂由0和1组成的二进制机器语言。为了简化与计算机的交流,人们发明了编程语言,编程语言经过编译后,能被计算机理解,C语言是众多编程语言中的一种,还有如C++、Python、Java等其他编程语言,相比机器语言,编程语言更易学习。
2、 C语言的发展历史
- 1996年,贝尔实验室的肯.汤普森和丹尼斯里奇这两个编程界的大佬开发Unix操作系统,然而Unix是用汇编语言写的,而汇编语言的可移植性非常差,为了移植到其它计算机,汤普森就在BCPL语言的基础上发明了B语言,开发操作系统,发明编程语言,可以说是非常的厉害
- 1972年,丹尼斯.里奇和布莱恩.柯林汉在B语言的基础上又发明了一种新的语言,由于这个语言取代了B语言,因此将它命名为C语言,Unix操作系统用C语言重写,在这之后,C语言就广泛用于各种操作系统和系统软件的开发
- 由于C语言没有一个通用的标准,导致了许多公司用C语言编写软件的时候都是按照他们的标准来写的,这就导致了很多软件只在一个平台可以正常使用,其它平台会出现各种各样的问题,软件的兼容性非常差,因此1988年,美国国家标准协会(ANSI)正式将C语言标准化,在这之后C语言逐渐趋于稳定和规范化
- 一直到今天,C语言还在被广泛使用,从这个链接可以看到,C语言到现在还是世界排名前三的语言
链接:https://www.tiobe.com/tiobe-index/
3、 VS项目、源文件和头文件
VS2022安装教程:http://t.csdnimg.cn/6QdU5
想要在VS上写代码,接下来我教大家如何创建项目
- 打开Visual Studio,点击创建新项目
- 双击空项目,创建项目文件
- 创建好之后就是如图所示的界面
- 到了这里,我们的项目就基本上已经创建完成了,在右边的解决方案资源管理器中有个头文件和源文件的选项
- 在C语言中,我们把.c后缀的文件称为源文件,.h后缀的文件称为头文件,我们要写程序的话是要在源文件里面写的,因此我们首先要添加一个源文件,我们右击源文件,点击添加中的新建项
- 打开之后我们就可以添加源文件了,在VS里面默认是.cpp后缀的源文件,而.cpp后缀是C++的源文件后缀,因此我们需要手动把它改成.c后缀的文件
- 如果大家点击新建项之后不是我这样的界面而是这样的,点击显示所有模板即可
- 创建好之后我们就可以开始写代码了
4、我的第一个C语言程序
下面是我写的第一个C语言程序
#include <stdio.h>
int main()
{
printf("Hello world!\n");
return 0;
}
找到菜单栏的调试按钮点击开始执行(不调试),也可以按快捷件Ctrl+F5,如果不起作用,就按Ctrl+Fn+F5
运行后的结果如图所示
我想大家第一次看代码肯定是看不懂的,所以大家不要着急,下面我会为大家一一讲解
5、main函数
在程序里面我们可以看见这样一句代码
这个东西叫做main函数,每个C语言程序中不管有多少行代码,都是从main函数开始执行的,main函数是程序的入口,main函数也叫主函数,这里的int 表示main函数结束后会返回一个整型类型的值,整型也就是整数,
main函数的写法一般情况下是这样的
int main()
{
return 0;
}
//以前的main函数写法,已经过时了,所以推荐大家用现在上面我这种的
//第一种
void main()
{
return 0;
}
//第二种
void main(void)
{
return 0;
}
//第三种
int main(void)
{
return 0;
}
在C语言中,main函数是非常重要的,在一个C程序中,main函数是整个程序的入口,程序是从main函数开始执行的,main函数有且只能有一个,即使在一个项目中有很多个.c文件,也只能有一个main函数,这其实也是很好理解的,因为main函数是程序的入口,程序最开始执行的地方,要是有很多的main函数,那么这个程序就会乱套了
main函数就先给大家介绍到这里了,在后面我们写的所有程序中,都是要跟main函数打招呼的,在后面写代码的时候,我们就能慢慢的感觉到它在程序中的重要性了
写main函数需要注意的几个点:
- main一定不要拼写错,有时候会被我们错误的拼写成mian,导致程序报错不能执行
- main后面的()不能漏掉
- 代码中不能有中文符号,如果你的代码写的正确,但是不能执行,就仔细检查一下是不是代码中使用了中文符号
- 每条语句结束之后要加分号
6、printf函数
在我写的第一个C语言程序中有着这样一段代码
printf("Hello world!\n");
这个代码使用了printf函数,它实现了在屏幕上信息的打印,在这里我先给大家简单的介绍一下printf函数,printf是一个库函数,它的功能是实现在标准输出设备上的信息打印,标准输出设备一般指屏幕,上面的代码是使用printf将字符串打印到屏幕上,我们只要把想要打印的字符串放在双引号中传递给printf函数,printf函数就可以打印出我们想要打印的字符串了
除过打印字符串,printf还可以用来打印其它类型的数据,比如:
printf("%d", 10);//打印整型
printf("%c", 's');//打印字符型
printf("%f", 3.14f);//打印浮点型
这里的%d %c %f是占位符,会被后面的值替代,这里大家知道一下就行了,不必深入了解,后面我会给大家详细介绍的
在我们使用库函数的时候是需要包含头文件的,在我们使用printf的时候就包含了stdio.h这个头文件,头文件的包含方法是
#include <头文件的名称>
在这里,大家肯定会问,什么是库函数呢???
其实库函数就是为了不再重复实现常用的代码,C语言标准规定了一组函数,这些函数由不同的编译器根据标准进行实现,这些函数共同组成的一个标准函数库就叫库函数,而一个系列的库函数一般都会声明再一个头文件中,因此如果使用到库函数的话就要包含相应的库函数,由于库函数比较多,我后面会慢慢给大家讲到,如果大家想提前了解库函数的话可以参考下面这个链接:https://cplusplus.com/reference/clibrary/
7、关键字介绍
在C语言中有一些保留了名字的符号,如int 、 char 、 if 、 for…等这些符号被称为保留字或者关键字
- 关键字都有特殊的意义,是保留给C语言用的
- 程序员自己创建标识符的时候是不能和关键字重复的
- 关键字是不能自己创建的
以下是C语言的32个关键字
auto break case char const continue default do double else enum
extern
float for goto if int long register return short signed sizeof
static
struct switch typedef union unsigned void volatile while
在C99标准中还新加入了inline 、 restrict 、 _Bool 、_Complex 、imaginary等关键字
8、字符和ASCII编码
我们在键盘上面可以敲出各种各样的字符,如:a、f、@ !¥ ……&*()——等,这些符号都被称为字符,在C语言中,字符是用’ ‘引起来的,如’a’ ‘b’ ‘#’
我们知道,在计算机中所有的数据都是以二进制存储起来的,那么这些字符在内存中分别是以怎样的二进制存储的呢,我们可以给每个字符编一个二进制的序列,这就叫做编码,为了方便我们通信,不造成混乱,美国国家标准协会(ANSI)出台了一个标准ASCII编码,C语言中所有的字符都遵循了ASCII的编码方式
ASCII编码表
看起来是不是挺多的,其实在学习C语言的过程中这些都不需要我们去记,需要用到的时候查就行了
但是有几组特殊的我们还是需要去记一下的
- 字符A ~ Z对应的ASCII码值为65 ~ 90
- 字符a ~ z对应的ASCII码值为97 ~ 122
- 对应大小写的字母对应的ASCII的差值是32
- \n对应的ASCII码值是 10
- 0 ~ 31的这32个ASCII码字符为不可打印字符,是无法打印在屏幕上观察的
打印单个字符可以用%c来指定格式,如:
#include <stdio.h>
int main()
{
printf("%c\n", 'a');
printf("%c\n", 97); //这里97对应的ASCII码值是字符a,在这里也是可以打印的
return 0;
}
我现在写一个代码,把32-127对应的ASCII码值打印在屏幕上,代码大家不需要理解,这里只是用于给大家展示
我们可以看到顺利的在屏幕上打印出来了32-127所对应的ASCII码值,为了给大家直观一点,我对代码稍作修改
讲到这里想必大家对ASCII编码已经理解的差不多了
9、字符串和\0
如何在C语言中表示字符串呢?使用双引号括起来的一段内容就是字符串,如“hello world”就是一个字符串,字符串也可以用%s的格式来打印
printf("hello world");
printf("%s", "hello world");
在C语言中的字符串中隐藏的一个特殊的结束标识符\0,但是它打印出来是不显示的,如图
那么有什么办法可以看到它呢?
我们可以用VS的监视功能,首先按住F10进入调试,依次点击如图
添加好之后再按一次F10,让代码执行到下一句
这时候我们展开监视的项就可以看到\0
这就进一步验证了字符串的结尾有一个停止的标识符
这个停止表示符是很重要的,我现在给大家写一个字符数组,初始化的时候不加\0,我们可以看看打印出来的是什么
我们可以看到,如果没有\0的话printf函数没有读到\0,不会停止,就继续打印下去了,直到遇到下一个\0,现在我们加上\0再来看看
可以看到,加上\0之后就不会出现打印乱码的情况了,至于为什么,不是我们这篇文章要讲解的重点,大家只需要知道\0的重要性就可以了,其它的我就不再过多赘述了
10、转义字符
到了这里,我来给大家讲解有关转义字符的知识点,也许在前面的代码中,你很好奇\n 、\0到底是什么,其实在字符中有一组特殊的字符叫转义字符,顾名思义就是转变原来的意思的字符,比如我们打印字符串abcnad,
结果如图
那如果我们在n的前面再加上\的话会怎么样呢?我加上去看一下,运行结果如图
可以看到n消失不见了,而ad跑到了下一行,其实\n是一个转义字符,表示换行,我们可以简单的理解为,是\让n的意思发生了转变,n本来是一个普通的字符,被\转义为了换行的意思,C语言中像这样的转义字符还有很多,如:
具体的可参考这个链接:https://zh.cppreference.com/w/c/language/escape
11、语句和语句分类
C语言的代码是由一条一条语句构成的,大体可分为一下五类:
- 空语句
- 表达式语句
- 函数调用语句
- 复合语句
- 控制语句
接下来我给大家一一介绍
11.1 空语句
空语句是最简单的,一个分号就是一条语句,是空语句
#include <stdio.h>
int main()
{
;//空语句
return 0;
}
空语句一般出现的地方是,这里需要一条语句,但是这个语句不做任何事情,就可以写一个空语句
11.2 表达式语句
表达式就是再表达式的后面加上分号,如下
#include <stdio.h>
int main()
{
int a = 20;
int b = 0;
b = a + 5; //表达式语句
return 0;
}
11.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;
}
11.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;
}
11.5 控制语句
控制语句用于控制程序的执行流程,以实现程序的各种结果方式,C语言支持三种结构,分别是顺序结构、选择结构、循环结构后面的文章会仔细的为大家讲解
12. 什么是注释?为什么要写注释?
- 注释是对代码的说明,编译器会忽略注释,也就是说,注释对实际代码没有影响。
- 注释是给程序员自己,或者其他程序员看的
- 好的注释可以帮我们更好的理解代码,但是也不要过度注释,不要写没必要的注释。
当然不写注释可能会让后期阅读代码的⼈抓狂 - 写注释⼀定程度上反应了程序作者的素质,建议⼤家写必要的注释,在未来找⼯作的时候,写代码时
留下必要的注释也会给⾯试官留下更好的印象
12.1 注释的方法
注释有两种注释的方法
-
第一种/ * 要注释的语句 * /,如图
注释的语句不会被执行,而是会被替换成空格 -
第二种//要注释的语句,如图
这两种注释的区别是,第一种可以多行注释,第二种只能单行注释
13. VS小技巧
13.1 改变字体大小
按住Ctrl滑动鼠标滚轮就可以改变字体的大小
13.2注释和取消注释
选中要注释的代码按住Ctrl+K再按一下C就可以注释掉选中的代码
取消注释是按住Ctrl+K再按一下U
13.3运行代码
Ctrl+F5 或者 Fn+Ctrl+F5
13.4跳到行首和行尾
跳到行首:Home键
跳到行尾:End键
14. 结语
如果你能看到这里的话想必你对C语言已经有了一个初步的认识,感谢你能看到这里,如果本篇文章对你有用的话可以点赞加收藏,这篇文章都是根据自己本人看法来写的,如果有哪里不对希望大佬指正,我会做出修改,今天的分享就到这里啦,谢谢大家观看!!!