C生万物 —·———初识c语言

目录

何为c

C语言的发展

第一个c语言

数据类型  

变量 


何为c

c语言是一门通用的计算编程语言,用于底层开发

好比我们的电脑具有操作系统,硬件和应用程序,而操作系统作为中介可以通过驱动程序驱动硬件,同时也控制着上层的应用程序。而与上层对应的,便是位于底层的操作系统及其驱动和硬件了。你知道吗,早期的qq,百度也是用C语言写的哦。 

C生万物 —·———初识c语言_第1张图片

C语言的发展

c的底层逻辑是二进制序列,单用二进制写代码,那得多复杂啊!为了便于操作和记忆,发明了助记符,例如ADD,使用它就能执行加法的功能,这种通过助记符来表示的语言称为汇编语言。从B->C,又从C到各种分支,好比人类进化时也分出了成百上千的语言一样,c语言也经过了许多次的分化,我们熟知的有C89,C98,C99······最后统一为ANSI C 标准,在此不多做赘述,感兴趣的可以自己去了解。

C语言是一门面向过程的语言,与JAVA、C++等 面向对象的编程语言不同。(以后会说)

第一个c语言

 要写c语言,当然不能少了编译器了,常用的编译器有GCC,MSVC等等,我用的IDE(集成开发环境)是VS2019。

1.创建文件

C生万物 —·———初识c语言_第2张图片

C生万物 —·———初识c语言_第3张图片

tip:将自己写代码的位置创建一个文件单独管理起来,文件名最好用英文。

C生万物 —·———初识c语言_第4张图片

C生万物 —·———初识c语言_第5张图片  

以上是在编译器内创建c程序的基本过程,请各位务必牢记。 

2.写代码

先跟着写这样一段代码吧:

C生万物 —·———初识c语言_第6张图片

3.运行代码 

C生万物 —·———初识c语言_第7张图片

一个成功的c代码都要经过 编译——链接——运行这三个过程 ,而此时我们可以通过ctrl+F5的方式执行这一操作。

main函数——程序的入口

在vs2019里,通过上方工具栏里 调试->开始调试->逐过程调试中,可以看见每次调试都是从main函数开始的,所以当我们在编写程序时,应该遵循

int main()
{
   return 0;
}

这样一种形式。int 是整数integer的缩写,retuen 0是C语言的标准结束格式,而返回0是因为是整形函数所以需要返回一个整形的数字。大家千万不要返回非0的数值,否则程序将被视为非正常终止。函数是什么后续会说。

 printf函数——按格式显示打印值

还记得屏幕上的hello world吗,这就是printf函数的一个作用,打印了我们

由于printf函数是在库里实现的,所以要在第一行引用头文件

数据类型  

c语言的诞生是为了解决我们日常生活中的一些复杂问题的,例如购物结账时的商品清单会显示其日期,价格,数量,商品名等等,所以我们引入了数据类型这个概念,具体有哪些呢,一起来看看吧。

C生万物 —·———初识c语言_第8张图片

大家都用过软件,在下载应用时软件会显示100MB,1G,一些小的文件会显示KB或B,这种类型的后缀,我们称为内存的单位,你一定知道计算机通过二进制储存数据,但你知道最小的储存单位是bit吗,一个字节等于8个比特位。那你知道1GB==多少MB吗?

C生万物 —·———初识c语言_第9张图片

 知道了这个以后,我们再来看看这些数据类型要想储存在内存中,也要占据一定的空间大小,具体怎么去判断它们所占多少内存呢?这里我们引用到一个操作符sizeof来计算

C生万物 —·———初识c语言_第10张图片

在C语言中,除了数据类型的不同,还有打印格式的不同,这样不是复杂化,而是为了更好的打印出我们想要的数据类型,从而解决更多实际问题,例如%d就是十进制的打印格式,这些在大家编程的过程中会逐渐被灵活运用。

sizeof——计算表达式所占内存大小(单位是字节)

例如char(字符)类型所占一个字节,也就是储存8个二进制位,从short到long long 这个区间属于整形范畴,只是所表示的范围有所差异,大家现在知道这个范围差异就行了。有一点需要注意,long类型的大小在不同编译器上可能不同,可能是是4/8个字节。                              

多种多样的类型使我们在选择时可以更加灵活,同时对于空间的利用也更加高效。那么我们如何去利用这些类型呢,接下来介绍一个新概念。

变量 

类似数学中的变量,这个世界上唯一不变的就是一切都在改变,而变量就应运而生。例如

float book=20.5f;//书的价格为20.5
int apple =5;//苹果有五个
char ch ='w'//字符为w

命名规则

  • 为字母(大小写),包括下划线和数字。
  • 数字不能在开头。
  • 长度不能超过63个字符。
  • 不能使用关键字。
  • 变量名区分大小写。

变量又分为全局变量和局部变量

int a=100;//全局变量
int main()
{
   int a=0;//局部变量
   printf("%d",a);
   return 0;
}

简单来说,它们的区别在于一个在大括号内外的关系,在打印时,我们会遵循局部优先的规则,打印 0这个值。

我们如何更清晰地看见变量是怎么改变的呢?c语言提供了于printf相对应的输入函数,scanf。

scanf函数——按格式输入数值

int main()
{
   int a=0,b=0;//初始化
   scanf("%d" "%d",&a,&b)//&为取地址符,一定不要忘了加
   printf("a=%d b=%d",a,b);//打印输入值
   return 0;
}

当我们CTRL+F5时,会发现一个错误

略懂英语的我翻译一下,意思是说这个函数或变量可能不安全,要我们用sacnf_s来代替,也可以用_CRT_SECURE_NO_WARNINGS来防止报错。我们不了解scanf_s没关系,这是vs2019编译器能识别的函数,我们直接在第一行加上#define  _CRT_SECURE_NO_WARNINGS 1 就行了。今后也要会灵活运用,以及处理各种错误,这对我们学习C语言很有用处哦。

tip:至于不安全,那是因为在调用scanf函数时可能会出现越界等情况, 如果输入的字符串大小大于字符所能储存的大小,就会发生越界,而scanf本身并不具备检查错误的功能。

变量的作用域和生命周期

作用域是作为代码的限定范围,限定了代码的使用范围。

  • 全局变量作用于整个工程。
  • 局部变量作用于所在大括号的区间。

变量的生命周期是变量创建和销毁之间的时间段。

  • 局部变量生命周期为进作用域生命周期开始,出作用域结束。
  • 全局变量的生命周期为整个工程的生命周期。

tip:创建变量向操作系统申请空间, 销毁归还申请空间。

如果我想在相同文件的不同工程使用同一个变量,那要怎么做呢,可以使用extern关键字,类似于扩大了作用范围,具体以后再说。

 int a = 10;//add.c
extern int a;//test.c
printf("%d",a);

本次分享就到这了,希望能帮到大家。

你可能感兴趣的:(c语言,开发语言)