初识C语言

本章主要会阐述一些C语言的最为基础的知识,后期的文章中会做具体的阐述。

一、C语言的发展历史

二、编译器的选择

2.1编译和链接

        学习计算机语言,那必不可少的那就是编译器了,C语言就是一种编译型计算机语言,其源代码都是文本文件,文本文件本身是无法执行的,必须通过编译器的翻译链接器的链接,生成二进制的可执行文件

        我们通常编写的C语言代码都是放在.c为后缀的文件中的,要的得到最终运行的可执行程序,中间就必须要经过编译链接2个过程。

文件夹中的.C​​​文件
编译器中的.C文件

             一个工程中,会存在多个源文件,每个源文件单独经过编译器的处理,则会生成对应的目标文件(.obj为后缀的文件),多个目标文件和库文件经过链接器的处理生成对应的可执行程序(.exe后缀的文件)

2.2编译器和集成开发环境的关系

        集成开发环境(IDE):提供程序开发环境的应用程序,一般包括编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发件服务套。

        编译器就是将计算机语言转换成机器能够执行的机器指令。

        常见的C语言编译器:msvc、clang、gcc等。

(我使用的集成开发环境是VS2022,因为①在企业中使用较多②功能非常强大③直接安装就可以使用,不需要在去额外配置环境,并且界面是中文的---这一点对我这个懒蛋简直不要太友好!)

三、C语言中的几个函数——main函数

int main()
{
printf("初识C语言");
return 0;
}

3.1main函数

        一个C语言程序不管有多少行的代码,都是从main函数开始执行的,main函数(也被叫做主函数)就是程序的入口。

        int表示main函数执行结束时,返回一个整型类型的值。与最后的return 0;正好呼应。

3.2库函数

        在上面的代码中,我们还看到了printf函数,他可以实现屏幕上信息的打印。

        这里简单的介绍一下printf,它其实是一个库函数,上面的代码用这个函数打印了字符串。只需要将需要打印的字符串放在双引号中传递给printf函数就可以实现打印。

         除了字符串类型,还可以打印其他类型的数据,如:

#include <stdio.h>

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

        不要担心这里的%d、%c和%lf,它们叫做占位符,会被后面值替换。(后期的文章会具体的阐述)

        那什么是库函数?

        为了不再重复实现常见的代码,提高开发效率,C语言便规定了一组函数,它们由不同的编译器厂商更具规定的标准进行实现,提供给敲代码的我们使用。这些函数便组成了函数库(亦叫标准库),在这个标准上,一些编译器厂商会扩展一些函数,但在别的编译器上不一定会支持。

         库函数在哪里呢?它在上面第一行的头文件中,所以在使用库函数时,要包含对应的头文件,可以在这个链接中(cplusplus.com/reference/clibrary/)进行查询使用。

四、关键字

        C语言中有一批保留名字的符号,称为保留字关键字

需要注意的一些点:

1.关键字都是具有特殊意义的,保留给C语言使用的。

2.我们在自己创建标识符得的时候是不能和关键字重复的!

3.自己不能创造关键字。

        C语言常用的的关键字如下(32个):

auto  break  case char const continue defult do double else enum extren 
float for goto if int long register return short signed sizeof static 
struct switch tepedef union unsigned void volatile while 

详细的关键字介绍可以从这个网站(C 关键词 - cppreference.com)上进行查询。

五、字符和ASCII码

        a,!,@,#.......这些从键盘上可以敲出来的都叫做字符,在C语言中表示一个字符用单引号将其括起来,像'a','@'。

        计算机中的数据都是采用二进制的形式储存的,每个人都可以给字符编一串二进制序列(这就叫编码),那么每个人都不一样,交流起来就会很麻烦和混乱,于是美国国家标准协会出台了一个标准——ASCII编码,C语言中遵循ASCI编码的方式。

上方的ASCII编码是我从这个网站(ASCII 码表 - cppreference.com)截取的。

        那你可能会问学习C语言要把这个全部背下来吗?大可不必,我们在使用的时候进行查询就可以了,但是我们可以记住一些特殊的数据。

六、字符串和/0

        字符用''来表示,那么字符用什么来表示呢?用双引号括起来的一串字符就被称为字符串,如"abcdefg",就是一个字符串。

        字符串的打印格式要使用%s来打印,也可以直接打印。

#include <stdio.h>
int main()
{
printf("abcdef");
printf("%s","abcdef");
return 0;
}

         在这里我们要叙述一个隐藏的小知识,在字符串的末尾隐藏着一个\0字符,这个字符是字符串结束的标志。

        我们在监视窗口中,可以看到最后有一个\0的转义字符,它是字符串结束的标志。我们在使用printf或strlen时,遇到\0就自动停止了。

        在数组中,我们会很清晰的感受这个隐藏的小知识点!

        一经对比,我们可以很明显的看出数组arr2打印出了很多的随机值,原因就是在这个数组内没有\0这个结束标志。而在arr1数组中是用字符串常量进行初始化的,有\0,所以打印到\0就结束了。

我们如果在arr2数组后放一个\0运行结果就是这样的:

七、转义字符

        在前面的代码中,你会对\0,\n很疑惑,其实它们是一种特殊的字符,叫做转义字符,它们可以转变原来字符的意思。

        上面的两个代码中 ,我们可以很明显的看出,多了一个\就出现了截然不同的运行结果,n原本是一个普通的字符,但是当前面有了\后就被转义成了换行的意思。

        C语言中还有一下转义字符:参考网站(转义序列 - cppreference.com

要注意的是数值转义序列,要知道他是怎么进行运算的,显示的结果是什么。

八、语句

        C语言的语句一可以分为5大类:

1.空语句

2.表达式语句

3.函数调用语句

4.复合语句

5.控制语句

前四种语句都很简单,就不过多赘述,主要讲一下控制语句。

         C语言是结构化的语言,一共有三种结构:

1.顺序结构

2.选择结构

3.循环结构

        控制语句就是用来实现上述三种结构的。C语言有九种控制语句。

分为三大类:1.分支语句(条件判断语句):if   switch

                      2.循环执行语句:do while   while   for

                      3.转向语句:break  goto  continue  return  

后期的文章中会详细介绍~~~

九、注释

        注释是对代码的解释说明,对实际的代码没有影响,编译器在编译器时会直接忽略注释。好的注释可以帮助我们更好的理解代码的意思,但也不需要过度注释,不要写没有必要的注释。

        一串代码写了很长时间,我们已经有所忘记,而注释可以帮助我们快速回顾当时写这段代码的思路,为后期的阅读提供了很大的便利。

        写注释也可以反应程序员的素质,在面试时可以给考官留下不错的印象。

9.1/**/形注释

/*这是一段注释*/

/*

注释

*/

要注意的是这种形式是不能进行嵌套的! /*开始注释后遇到第一个*/就认为结束注释了!

/*
printf("abc")
printf("hehe")
printf("haha")
printf("dddd")/*打印dddd*/
printf("yyds")
*/

9.2//形注释

        这种形式是将注释放在双斜杠//后面,从//开始一直到行尾都是注释,但是这种注释只能注释单行,可以放在首行,也可以放在一行语句的结尾。(这是C99标准中新增的语法)

//这是注释

int a=666;//这里也是注释

         不管是哪一种注释,都不可以放在双引号里面,双引号里面的注释符号,会被认为是字符串的一部分,成为普通符号,没有了注释的作用。

printf("//nice//")
printf("/*nice*/")

  • 31
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值