大家好,我是小崔,一名二本准大一计科生,梦想是去BAT这样的大厂工作。

    今天是第一天学C语言,在这里记录我的学习过程,若有错误,还请各位大牛多多指教,谢谢。

    int main()----主函数---程序的入口--有且仅有一个。

    下图的printf为库函数——C语言本身提供给我们使用的函数,相当于我们在使用别人的东西,我们应打招呼。

    而打招呼的方式为#include <stdio.h>  stdio--standard input output  标准输入输出 .h是头文件的意思

    当我们使用输入或输出函数的时候都需要stdio.h

    小白入门第一天_小白

    这是学习的第一串代码。不知道各位大牛是怎么写开头的,我总是手打#include <stdio.h>  以及后面的main函数,当初学这个打印函数的时候觉得原来计算机还能这么玩。区别于3A大作游戏,写出代码对于我个人来说,成就感比通关游戏更浓厚(不知道浓厚这个词用的对不对哈哈)。

    可能以后还会有小白看到这篇博客。好兄弟切记打括号里的代码,写一行后面记得带上 (;)这个东西。我每次写完代码试着跑一下代码  VS2019报错的大部分错误里都是没加(;)这玩意。Attention!!是  ;  不是(;)。是括号里的!!

    小白入门第一天_小白_02

   这是在学局部变量和全局变量。以我个人的理解,粗俗的来说,全局变量就是放在代码块之外的变量,也就是大括号之外的变量。局部变量就是放在代码块之内的变量,比如说在大括号之内又开了一个大括号,括号里面的那个int num = 5  这个整型里的num就是局部变量。

    小白入门第一天_C语言入门_03里面的标注可谓是求生欲天花板

    还有啊!!局部变量和全局变量的名字建议不要相同--容易误会,产生bug

                      当全局变量和局部变量的名字相同时,局部变量优先!!

小白入门第一天_小白_04    这串代码跑出来的结果是200

----------------------------------------------------------------------- -----一道优美的分界线-----------------------------------------------------------------------------

    小白入门第一天_小白_05

    因为我是在b站上看网课学的C语言,当时呢个老师说,当时他第一次教课有个特别操蛋的经历,就是他把代码写成了

#include <stdio.h>
int main ()
{
int num1 = 0;
int num2 = 0;
scanf("%d%d",&num1,&num2);
int sum = 0;
sum = num1 + num2;
printf("sum = %d\n",sum);
return 0 ;
}

    他说应该把int sum = 0和scanf函数换位程序就能跑了。但是我觉得更让我麻的是,也许是编译器的问题,或于是我写代码格式不对,我用的是VS2019,我的scanf必须写成scanf_s才能跑不然就会出现错误如下。

小白入门第一天_C语言入门_06

    挺无奈的。

 

小白入门第一天_小白_07

 这里char是一种类型叫做“字符类型”,我们用这种字符类型创建了一个变量叫做ch,而这个ch就是向内存申请一块空间

   ,这个空间的名字叫ch,用来存放A。切记这里字符用的是单引号!!!

       眼尖的好兄弟能看到这里打印函数printf里用的是%c而不是%d。

小白入门第一天_C语言入门_08   这里的输入或输出在printf函数中可以理解为打印哈

    类型也不仅仅有char一种类型。

小白入门第一天_C语言入门_09

这里有个单精度和双精度。

区别在于:1.Float为单精度,内存中占4个字节,有效数位是7位(因为有正负,所以不是8位),在我的电脑且VC++6.0平台中默认显示是6位有效数字。

                  2.double为双精度,占8个字节,有效数位是16位,但在我的电脑且VC++6.0平台中默认显示同样是6位有效数字。

                  PS:一个字节是8个比特位

 

#include <stdio.h>
int main()
{
printf("cjw = %d\n",cjw);
return 0;
}

上面这一串代码是跑不出来的,错误为小白入门第一天_C语言入门_10

 

因为计算机语言是我们与计算机沟通的语言,我们要告诉计算机应该怎么做。在上面的代码中,我们说要打印cjw。但是我们并没有后告诉计算机cjw是什么,因此我们

应在添加一个源文件如下图的study test.c。在文件里敲出cjw小白入门第一天_小白_11

    此时的int cjw = 19 中的cjw在源文件study test.c中为全局变量!全局变量的作用域是整个工程!

    创建完成后,我们向计算机声明(声明为extern)int cjw这个整型  ,计算机就知道cjw是啥。 

    切记,extern后面写的是你添加的源文件里的整型名字,不是源文件名!

    别问我怎么知道,问就是跑了好几次错误。

    实践出真知!                                                                                   

    小白入门第一天_C语言入门_12小白入门第一天_小白_13

 

最后就是今天学的生命周期

小白入门第一天_C语言入门_14这里截了代码行数,便于陈述我的理解。

   125行代码中的a为局部变量,局部变量a的生命周期是:进入作用域生命开始,出作用域结束。作用域为125--127行的大括号。当运行到128行时就会报错,因为当局部变量a出了127行的大括号时它的生命就结束了,它就嗝屁了。所以128行中的打印函数找不到要打印的a就会报错!

  若是删去125---128行的局部变量,在代码块外也就是大括号之外,写出一个全局变量,怎么打印都能打印出来。因为全局变量的生命周期是整个工程 main函数有多长它能活多长。

    今天就到此为止,明天我们再见!

小白入门第一天_小白_15