大家好,我是小崔,一名二本准大一计科生,梦想是去BAT这样的大厂工作。
今天是第一天学C语言,在这里记录我的学习过程,若有错误,还请各位大牛多多指教,谢谢。
int main()----主函数---程序的入口--有且仅有一个。
下图的printf为库函数——C语言本身提供给我们使用的函数,相当于我们在使用别人的东西,我们应打招呼。
而打招呼的方式为#include <stdio.h> stdio--standard input output 标准输入输出 .h是头文件的意思
当我们使用输入或输出函数的时候都需要stdio.h
这是学习的第一串代码。不知道各位大牛是怎么写开头的,我总是手打#include <stdio.h> 以及后面的main函数,当初学这个打印函数的时候觉得原来计算机还能这么玩。区别于3A大作游戏,写出代码对于我个人来说,成就感比通关游戏更浓厚(不知道浓厚这个词用的对不对哈哈)。
可能以后还会有小白看到这篇博客。好兄弟切记打括号里的代码,写一行后面记得带上 (;)这个东西。我每次写完代码试着跑一下代码 VS2019报错的大部分错误里都是没加(;)这玩意。Attention!!是 ; 不是(;)。是括号里的!!
这是在学局部变量和全局变量。以我个人的理解,粗俗的来说,全局变量就是放在代码块之外的变量,也就是大括号之外的变量。局部变量就是放在代码块之内的变量,比如说在大括号之内又开了一个大括号,括号里面的那个int num = 5 这个整型里的num就是局部变量。
里面的标注可谓是求生欲天花板
还有啊!!局部变量和全局变量的名字建议不要相同--容易误会,产生bug
当全局变量和局部变量的名字相同时,局部变量优先!!
这串代码跑出来的结果是200
----------------------------------------------------------------------- -----一道优美的分界线-----------------------------------------------------------------------------
因为我是在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才能跑不然就会出现错误如下。
挺无奈的。
这里char是一种类型叫做“字符类型”,我们用这种字符类型创建了一个变量叫做ch,而这个ch就是向内存申请一块空间
,这个空间的名字叫ch,用来存放A。切记这里字符用的是单引号!!!
眼尖的好兄弟能看到这里打印函数printf里用的是%c而不是%d。
这里的输入或输出在printf函数中可以理解为打印哈
类型也不仅仅有char一种类型。
这里有个单精度和双精度。
区别在于: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;
}
上面这一串代码是跑不出来的,错误为
因为计算机语言是我们与计算机沟通的语言,我们要告诉计算机应该怎么做。在上面的代码中,我们说要打印cjw。但是我们并没有后告诉计算机cjw是什么,因此我们
应在添加一个源文件如下图的study test.c。在文件里敲出cjw
此时的int cjw = 19 中的cjw在源文件study test.c中为全局变量!全局变量的作用域是整个工程!
创建完成后,我们向计算机声明(声明为extern)int cjw这个整型 ,计算机就知道cjw是啥。
切记,extern后面写的是你添加的源文件里的整型名字,不是源文件名!
别问我怎么知道,问就是跑了好几次错误。
实践出真知!
最后就是今天学的生命周期
这里截了代码行数,便于陈述我的理解。
125行代码中的a为局部变量,局部变量a的生命周期是:进入作用域生命开始,出作用域结束。作用域为125--127行的大括号。当运行到128行时就会报错,因为当局部变量a出了127行的大括号时它的生命就结束了,它就嗝屁了。所以128行中的打印函数找不到要打印的a就会报错!
若是删去125---128行的局部变量,在代码块外也就是大括号之外,写出一个全局变量,怎么打印都能打印出来。因为全局变量的生命周期是整个工程 main函数有多长它能活多长。
今天就到此为止,明天我们再见!