C语言入门class_1

1、什么是C语言——人和计算机进行交流的一种语言

       我们想要向人下达命令让他们帮我们做一些事情的时候,我们需要用人类的语言跟他交流。那以此类推,当我们想要向计算机下达命令让它们帮我们做一些事情的时候,我们需要用计算机的语言跟他交流。人类的语言有很多种,比如:汉语、英语、法语等。而计算机语言也有很多种,C语言就是其中的一种。

2、C 语言的历史——C生万物

      上个世纪七十年代,丹尼斯·里奇和肯·汤普逊在开发unix系统的时候为了提高代码的可移植性和开发效率在B语言的基础之上发明了C语言。由于C语言简洁和强大的功能被广泛的使用。

      然而由于没有统一的标准,导致不同的C编辑器对语言的规范解释存在差异,开发人员在一个系统上编写的代码到了另一个系统可能就无法使用,C语言库也有差异,极大地制约了C原因的发展,于是ANSI (美国国家标准协会)在1989年制定了C语言的标准,后来在这个标准上不断发展,相继颁布了C99标准和C11标准。

      C语言作为一种底层、高效的语言,为计算机系统和软件的发展做出了许多贡献,许多操作系统、编译器、计算机语言都是由C语言编写或者在C语言的基础上编写而成,如:Linux、GCC、C++、Java。简单来说:C生万物。

3、C语言的特性——编译性

程序员写出的C语言代码不能直接被计算机执行,需要通过编译器将程序员写的C语言代码变成二进制的机器代码才能被计算机识别执行。

这个过程主要分为以下几个部分:

  • 程序员通过文本编辑器创建C语言的源代码,后缀为.c
  • 编译器收到源代码以后将源代码变成汇编语言或者直接转化为机器码(二进制指令),生成的文件为目标文件,后缀为.obj
  • 链接器将多个目标文件与库文件进行链接最终形成计算机可以执行的可执行文件,后缀为.exe

4、VS2022的使用方法

①双击打开程序

②点击创建新项目

③所有语言\C++\空项目\下一步

④设定项目名称及存放的位置

⑤检查一下有没有解决方案管理器

ps:如果没有用下面的方法调出来

⑥打开文件夹,找到我们创建的东西(做到心中有数)

⑦创建源文件:源文件是以.c为后缀的文件

⑧正式创建源文件

⑨开始写代码吧!!!

5、从第一个C语言程序开始:打印Hello world!

Ps:

 执行代码:ctrl+F5/ ctrl+Fn+F5

 注释:ctrl+K+C——注释/ ctrl+K+U——取消注释

6.分析代码

Ps:关于为什么是return 0,可以看下面我跟Chat Gpt的对话:

问:int main 后面为什么要是return 0?

答:在C和C++中,int main后面的return 0;语句表示程序成功运行并正常退出。在这里,main函数的返回类型是int,它指示程序在结束时应返回一个整数值。传统上,返回值为0通常表示程序成功执行,而非零值则表示发生错误或异常情况。

这种约定允许其他程序(如脚本或其他程序)检查你的程序的退出状态。如果你的程序成功完成了它的任务,返回0可以被认为是一个标志,表明程序已经正常退出。

问:写其他数字可以吗?

答:是的,你可以使用除0以外的任何整数值来表示不同的退出状态。通常,非零值被用来指示某种错误或异常情况,而0则表示正常退出。例如,你可以使用return 1;或return -1;等其他整数值,具体取决于你的程序中的不同退出状态的定义。

问:那return 1是真的指程序被错误执行了吗,还是说是一种代表错误执行的标志,能不能执行成功取决于代码本身?

答:return 1;本身并不指示程序一定是错误执行了,而是表示程序以非零的退出状态结束。具体到程序是否成功执行,确实取决于代码的实际逻辑和设计。

在很多程序中,非零的返回值被用来表示某种错误或异常情况,而0通常表示正常执行。但这只是一种约定,具体的含义取决于程序的设计者。你可以根据你的需要定义不同的返回值,只要在程序的上下文中有清晰的含义和处理逻辑。

问:return 0是不是以前人们用0输出,来判断程序能否执行的标志,进而将这种习惯流传下来的呢?

答:是的,这种约定确实有历史渊源。在早期的C和Unix编程中,程序的退出状态通常被用来表示程序执行的结果。返回0表示成功执行,而非零值则通常用来表示错误或异常情况。这种约定在很多编程环境和操作系统中得以延续,成为一种标准做法。

例如,Unix操作系统规定,一个程序的退出状态是一个8位的整数,其中0通常表示成功,而其他非零值表示不同的错误或异常情况。这种习惯在后来的编程实践中得到了广泛的应用,成为了一种约定俗成的规范。

PS:什么是库函数?

程序员在编写代码的时候,可能会频繁的使用一些功能,比如:输出、输入、求字符串长度等,如果程序员在这些常用功能的是时候还需要花费大量的时间来进行编程,会很浪费时间。为了提高编程效率,提前规定了一些常用的函数:printf、scanf、strlen等,程序员可以直接使用它们,而编译器厂商则负责实现这些函数的功能,比如程序员在代码里写printf,编译器在编译的时候就会将printf转化为打印的二进制代码,进而使计算机进行相应的操作。而相同功能的函数会被收集在相应的头函数库中。在函数库里面的函数就被称为库函数。

7、关键字

C语言中的关键字又被称为保留字,在C语言中有它自己固定的含义和用法,简单来说就是C语言已经自己使用这些字符了,程序员不能再使用它们作为自己的变量名、函数名等标识符来使用。

PS:标识符:在程序设计语言中,标识符是用作程序的某一元素的名字的字符串或用来标识源程序中某个对象的名字

8、字符

@,a,^等的符号称为字符。字符在使用的过程中用单括号‘’括起来,比如‘@’、‘a’、‘^’

计算机通过二进制数来存储数据,同样的,这些字符也有相应的二进制数据跟它们相互对应。它们之间的对应关系在ASCII中有相应的规定。

其中有一些需要我们注意的:

0~9的ASCII编码值为:48~57

a~z的ASCII编码值为:97~122

A~Z的ASCII编码值为:65~90

大写字母与小写字母的ASCII值相差为32

0~31号编码值无法打印,其余均可以打印

9、字符串

用双引号将一串字符括起来,就形成了字符串。字符串在打印的时候用%s作为占位符(回顾:整数用%d作为占位符、字符用%c作为占位符、浮点数用%f作为占位符)。

注意:\0的存在

虽然我们在写字符串的时候是:“abc”这样写的,但是其实后面还隐藏了\0,他是字符串结束的标志。我们可以在调试界面的监视中看到它的存在。

Ctrl+F10:开始调试

我们还可以通过代码更加明确的知道这个\0发挥的作用

按照刚才的方法进行监视,区别就是一个有\0,一个没有。

运行结果大不一样:

造成这种现象的原因是内存的越界访问,由于没有\0说明字符串的结束,计算机在打印的时候,打印完abc以后并没有停止,而是继续把后面的数据以乱码的形式继续打印了出来。

10、转义字符

转义字符顾名思义就是转变含义的字符,像我们在刚才用到的\n,以及没有显示的\0,这些都是转义字符,n原来本来就是一个普通的n,但是\n将n的含义转变,变成了换行。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值