【从零开始的C语言】Ep001 被鞭策的一天

书接上回,18岁的少年丑月正式开始了C语言的学习,并准备好了接受C语言的折磨。

1.学习内容

a)、初识C语言

C语言是一门计算机语言,是将二进制的机器语言简化为具有可读性的汇编语言,简化编译过程。

C语言是较为基础的汇编语言,是众多语言的基础,在计算机发展过程中基于C语言衍生除了许多实用的语言。在C语言的发展过程中为了避免语法差异颁布了国际标准(ANSI C),目前较为流行的标准为C89/C90,国际标准的出现增加了C语言的通用性。

与其他语言相比,C语言的难度较大,更注重系统底层的控制,适用于嵌入式软件和嵌入式系统的开发,但开发效率和简便性略显不足。由于其更加基础与对底层系统掌握要求更高,个人认为在学习C语言之后对开发以及研究其他语言会有很大帮助。

b)、如何建立自己的项目?怎么开始写代码?

在VS中新建一个项目,在“Visual C++”中选择“空项目”,注意项目的命名规范以及存放路径。

.c 为源文件 

 .h为头文件 

 想要开始写代码需要在源文件中添加一个C++文件(竟然是因为没有C的文件hhh) 随后就可以开始编译自己的代码了

此处为我跟随视频创建名为 test.c 的文件

c)、编译代码

-主函数

开始写代码的第一步是要先写出主函数,所要运行的的代码是在主函数中进行编写

该结构是编译代码最基本的结构,在之前学习Java时有记得类似叫main方法的东西

-printf

之后就是喜闻乐见的hello world,好像每个语言学习时都会线学习到它的打印输出的方式

在这里一开始我是直接使用学习Java时知道的方法 print(“  ”)这样的,输出后换行是println,但是C语言却不一样,在输出时用的时pringtf,换行是在内容后加"\n"。

在使用printf时,当"  "中为A、B、C等字符时可直接打印输出,但当其中为变量时需要答应变量时需要先声明变量类型再使用,例如:

理解代码:在括号中引号所引的是需要输出的内容,%c表示了要输出一个字符数据,而逗号后是具体定义该字符数据是哪个。这里与Java的输出格式有类似之处,但又有不同,对于常量是一样的,但输出变量时Java是括号内直接输入变量名称,这里可以看出C语言确实没有其他语言方便但是更直观基础的特点。

-库函数

printf叫做库函数 是C语言提供使用的函数 可以直接调用来完成一些功能

在使用printf之前要在源文件的最前面用“#include<stdio.h>”,是因为printf这个函数被储存于这个文件中,调用printf时要先宣言使用这个这个头文件。

-变量类型及字节

char 字符数据类型 1字节

int 整型 4字节

short 短整型 2字节

long 长整型 4/8字节

long long 长整型 8字节

float 单精度浮点型 4字节

double 双精度浮点型 8字节

在机器语言中一个0或1存放时所占内存为1bit,在内存单位的换算中1字节=8bit;1kb=1024字节;1mb=1024kb;1gb=1024mb;1tb=1024gb;1pb=1024tb

-定义变量

定义变量是在内存中申请一块空间用于储存将要定义出的变量,需要对变量类型以及名称做出声明

字符数据类型需要用 ' ' 将内容引起来,其他类型在等号后写出就行,也可以只是声明一个变量而不先赋值。

对于一个变量,若是定义在函数中叫做局部变量,在主函数外叫全局变量,该变量可作用的范围就是它的生命周期。

-用scanf进行加法运算

&取地址符号:(&变量名)用于找到变量被存放的地址

scanf时输入数据用的函数,将键盘输入内容存放到指定的变量中,当两个变量存放了键盘输入的数据后用“+”将两个值求和后对sum变量赋值,最后打印sum变量

2、问题及解决

Q1:在我第一次使用ctrl+F5运行时提示我“项目已过期”

A:在搜索尝试了解原因时知道可能是项目中使用的某些组件或库已经过时,不再被支持或更新,但是大家说的是一直都在提示的情况,而我只有第一次是出现,而后并没有提示,继续翻看时发现有前辈提到说:在Visual Studio里如果编译没过,那么这个提示就是正常的。

Q2:在开始编译代码时除了int main 意外老师还讲到了void main 但是说后者已经过时了,为什么?

A:先是二者区别,通过搜索了解void无返回值,int有返回值,而int在书写时return 0就可以了。int就行是因为更通用,避免viod使用时会出现错误的情况。

Q3:进行加法运算的程序不管用

A:一开始视频讲解用的时scanf函数,但是运行时直接提示程序错误,错误列表提示scanf这个function不安全,具体是因为scanf在读取数据时不检查边界,如果对变量输入与其所声明类型不符的数据可能引起程序异常,根据视频弹幕改为scanf_s,但根据运行结果测试,改为scanf_s后只能对第一个变量赋值,于是改为以下代码,因为确实没找到有讲解scanf_s同时输入两个变量的情况

这样修改之后成功运行,但是感觉过于麻烦,于是在继续寻找后发现有办法可以无视scanf的风险警告成功运行程序,具体操作:scanf与scanf_s函数你了解吗?_scanf–s-CSDN博客

3、总结感悟

通过第一节的视频简单学习了关于C语言的基本知识,一定程度上了解了其特殊性与难度,在部分函数的学习与问题的解决中,深入的感受到其注重于基础的特点,很多地方在与此前稍有了解的Java对比后更是有所体会,同时也对于不同语言之间通过对比映射的学习方式感到新奇,这是之前只了解Java时没有感觉过的,也正是如此才会选择先系统学习更为基础的C语言,相信对我以后的学习会有帮助。

对于在学习中发现并解决问题的过程感觉十分有意思,通过搜索他人的内容对自己的代码进行纠正,不断的修改更正对了解代码的本身含义很有帮助,因此在此后的学习中也应该及时标记问题并寻求解决的方法.

4、部分参考资料

B站视频:BV1oi4y1g7CF

vs2015在按F5调试时,总是提示项目已经过期的解决方案_vs2015此项目已经过期-CSDN博客

vs2010里调试c++时总是说此项目已经过期怎么办?_百度知道 (baidu.com)

C语言中void main和int main有什么区别?-CSDN博客

C语言中 scanf_s和 scanf 区别-CSDN博客

scanf与scanf_s函数你了解吗?_scanf–s-CSDN博客

5、后续安排调整以及问题

·安排调整

一天学习一期视频一天进行博客的总结,从各位视角看到就应该是本博客隔一天一更新,我也不知道如果有特殊情况用不用特别说一声还是在下一次更新的博客里说这样qwq

·调整原因说明

完整进行一次学习和博客的总结撰写后才发现无论是看完一期视频讲解并且跟随视频去进行代码的编写还是去总结所学并有条理的写出一期博客都是很耗费时间的工作,以前就希望自己能够成为一名内容作者,做出自己的视频和播客这种,真正去进行内容创作(甚至于说我这还谈不上创作)之后,越发的钦佩各大内容作者了,但也是这样,由于现在虽然每天都能学习,但也无法花费过多时间去钻研,因此做出以上调整,看看自己能否适应下来。

·遗留问题,希望有大佬能指点指点

(1)之前说打算用gitee把自己写出来的代码存起来的,研究了一会儿,没搞明白,下来要继续摸索一下

(2)目前跟随的视频好像是挺久以前的了,是B站2020年更新的以前不清楚什么时候的,虽然C语言也是一门相对来说存在时间很长的语言,但语言一直在更新,老的视频会不会在一些方面走弯路,学到一些在如今不太实用的方法

(3)视频中使用编译器为VS2010版,但所给的资源是VS2013,虽然老师在视频里有提到过2013版的,所以应该没问题,但是就觉得挺怪的,也尝试过自己去下,结果太慢了hhh

(4)最近四川各学校的国家专项计划和地方计划的分数线陆续出了,看了下自己的志愿表,感觉要被调剂到其他专业,还要努力去转专业qwq,好焦虑hhhh,感觉自己还没上大学就已经在想大学要干的好多事情了qwq

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值