> 文档中心 > 博客之路,从此开始

博客之路,从此开始


一:写在前面

1.我为什么要写博客?

首先,我认为写博客是一种对自己学习状况的总结,这与自己做笔记不同,发博客出来会有其他人看到,这是一种无形的监督,督促你去学习。其次,我学习C语言已经有一段时间了,在这段时间里,我从不同的人的博客中收获了许多,觉得自己学有所得之后,或者解决了一个难题以后,也应当把方法分享出来,帮助其他人。最后,写博客被他人看到之后或许会有人留下评论,无论是褒奖还是批评,都能对我的学习起到作用。

2.本篇博客写了些什么?

本来我打算第一篇博客仅列出我的自我介绍,编程目标等,但又觉得这样太过空洞,于是打算从头开始,梳理我C语言的学习过程,也能给刚开始学习C语言的伙伴们一个参考。这一篇会讲述如何利用VS创建第一个项目,以及输出Hello world有关代码的浅析。

3.自我介绍

我现在就读于上海的某一所本科大学,目前大一,专业是材料学,起初我对编程其实并没有多少了解,对自己的专业也并未有很大的不满,但自从我学习了C语言之后,这个想法就改变了,我发现自己对编程尤为的喜爱,开始对自己的专业感到不满,现在短期的目标是转专业去到计算机科学与技术。

4.编程的目标

据我的老师所说,编程有三种境界:

  1. 看代码是代码
  2. 看代码是内存
  1. 看代码还是代码

我的目标就是达到第三种境界

5.我打算如何学习编程

  1. 每天做至少一道编程题
  2. 每天看至少半小时有关编程的视频或书
  1. 每周至少写一篇博客记录自己的学习情况

6.我打算在编程上花费的时间

每天根据课程的数量时间在1h到3h波动,周末每天至少3小时。

7.我最想进入的一家IT公司

目前我对各个公司还不太了解,并未有特别想进入的公司,后续有了我可能会再发一篇博客谈一谈。

二:初识C语言

1.编译器的选取与安装

我目前使用的编译器是VS2019,是我的老师推荐我使用的,支持中文,界面看起来也很舒适,小白使用没有什么问题。

安装地址:链接

进入后下载社区版即可,具体的安装过程可以看有关的博客,这里不再赘述。

2.C语言项目的创建

1.打开电脑上的Visual Studio, 点击创建新项目

2.选择C++栏下的第一个空项目,然后下一步。

3.之后有两个一般来说要修改的地方,一个是项目名称,二是文件存放的位置

4.第一个项目名称可以写成Hello World,位置可以选你想存储的地方,我本身是放在E盘,之后点击创建

5.一般会自动弹出解决方案管理器,若是没有,可以在视图的第一栏中找到

6.点到源文件一栏,右击鼠标,添加-新建项

7.选择第一个C++文件,名称默认为源.cpp,我们需要修改它

8.名字可以起你想起的任何一个名字,但是后缀从.cpp一定要改成.c,否则编译器会把你的代码当做c++进行编译,改成.c后才是对应C语言。

9.恭喜你完成了第一个C语言项目的创建

3.输出Hello World!几行代码的意思

相信很多人的第一次学习C语言写的第一个代码就是输出Hello World!

#includeint main(){printf("Hello World!");return 0;}

讲上述代码输入,再按下调试或者快捷键ctrl+F5,你就能看到一个框框弹出来,上面写着Hello World!了

我第一次成功时,内心也是激动的,但是我却有很多疑惑,为什么这样就能输出Hello World呢?

上面这四行又有什么作用呢?

  1. 我们先看看第三个位置,这一行或许比较容易去理解,如字面意思就是打印Hello World,但为什么输入printf后加上Hello world就能输出呢?
  2. 这就要回到第一行有个好像看不懂的东西#include,这一行的作用是引用头文件,就是把别人已经写好的东西拿到这里来使用,头文件的名字是stdio.h,这个头文件里面包含了许多常用的库函数,几乎每一个程序都需要引用这个头文件,如果你不引用这个头文件直接使用printf,编译器将会报错

  1. 我们可以看到错误列表里的显示,prinf未定义,这就是未引用头文件造成的
  2. 到现在你应该对头文件有了个大概的认识,我们继续看看prinf
  1. 可以看到printf后面跟了(),()里面再有个"",再里面才是Hello World,一定要这么写么?是的
  2. printf()本身是一个函数,后面的括号是必不可少的,我们以后看到一堆东西加(),几乎都是一个函数。就跟数学中的f(x)差不多。我们要做的就是往括号里面传参数,就是填x的值
  1. 由于Hello World不是我们定义的变量(变量后续会讲),所以我们用引号引起来表面它是个字符串
  2. 最后的分号;很重要,是一条语句结束的表示,可以理解为我们写作文时的句号,没有这个;,编译器仍然会报错。

  1. 可以看到错误提示,告诉我们缺少;,以后编写代码的时候千万不能忘记写;
  2. 看到这里,相信你对prinf为什么能输出Hello World也大致明白了,具体prinf的使用这里就不细讲了
  1. 我们回去看看引用头文件的下面一行,就是第二行,这个int main()是什么意思呢?
  2. 我们先抛开前面的int不谈,先来看看main(),前面说过一堆东西加个()是什么?函数
  1. 我们称main()为我们的主函数,有一个主字,想必你应该知道它很重要了
  2. 任何一个C语言程序一定要有且只有一个主函数,它是我们程序的接口
  1. 我们的代码从哪里开始执行,就是由主函数决定的,你可以试试将prinf("Hello World")放在主函数之外,编译器会告诉你错误

  2. 可以看到,不论是主函数之前还是之外,编译器都会报错,我是不是还没说主函数从哪开始到哪结束,我决定你已经猜到了,对就是在两个{}之间,不仅是主函数,其它函数也是如此,我把它称为函数的作用域。
  1. 既然说有且只有一个main()函数,那我写俩会发生什么呢?---编译器报错

  2. 最后只剩下我们的return 0了,return意思是返回,那么返回什么呢?我们后面写了个0,意思就是返回了一个0,你或许想问,为什么一定得是0,返回1可以吗?返回110可以吗?
  1. 语法上是支持的,但是不推荐,因为规定是写0,几乎所有的程序员都这么写,如果你不想当个例外,建议你也写成 return 0
  2. 它具体的作用除了返回一个值,还有一个作用就是结束当前的函数

  1. 可以看到,在return 0之后,我们想让计算机打印Hello!,但是这个语句并未被执行。
  2. 现在每一行都讲完了,我们捡起来我们之前忽略的int,它其实是C语言里面众多数据类型的一种
  1. 常见的数据类型还有

  1. 为什么要有这么多的类型呢?答案是为了创建和存储不同类型的变量
  2. 比如int,short,long,long用于存储整数,char用于存储一个字符,float,double用于存储小数(浮点数)

  1. 这里我们就创建了a变量存储了一个字符'w',b变量存储一个整数10,c变量存储一个小数3.1
  2. 既然整数用int,小数用float就行了,为什么还要有short,double呢?答案是它们能存储数据的大小不同

  1. 这里sizeof是一个操作符,作用是算出一个变量或类型能存储的字节数(Byte),至于sizeof后面不是跟了个()吗?怎么不是函数?之后再说。
  2. 一个字节,就是1Byte=8bit, bit指的是比特,或许后面的关系你更熟悉
  1. 1kb=1024b,1gb=1024kb,这里的b是指的Byte(字节),不是bit(比特),或许你对1bit有多大还是不太了解,这里举个例子吧
  2. 比如说10,它在计算机里面怎么存储呢?10换成二进制是1010,1010就占了4个比特位,也就是4bit,
  1. 而一个整型也就是int的大小为4字节(Byte),就是32bit,它能存储的最大数字就是2^32 -1
  2. 前面printf我们在引号里写了个%d,这又是什么意思呢?这代表输出一个整数,具体后面再说
  1. 而紧接着的/n作用是换行,就是回车。
  2. 这里我们可以在看看return 0,这个0就是一个整型,是不是和main()前面的int对应上了呢,至于为什么main()前面要加int,这也是规定。

四:总结

通过上面的学习,你应该学会了如何用VS创建一个项目,并且会输出Hello World,并且知道了那几行代码的意思,了解头文件,主函数,数据类型,return 0的作用,函数的作用域。希望对初学C语言的你有所帮助。