初学C语言的同学可以进来看看

CSDN上的各位,大家好啊!我是你们的新朋友SAKURA。很高兴能入驻CSDN这个温暖的大家庭。今天来和大家分享一下C语言中的一些基础知识。

C语言的发展过程

我们都知道,人之所以区别于动物站在了世界的顶层是因为人类有思想,并且能将自己的思想以语言的形式表达出来,人与人之间可以用英语交流,也可以用中文交流。同样的,人与计算机交流也需要语言,一种双方都能听懂的语言,这就是计算机语言(二进制语言)。但是问题来了,计算机语言都是由0和1组成的,一般人基本上是记不住的,更别提使用了,所以为了方便记忆使用,人们又发明了汇编语言(ADD、SUB),来帮助记忆。但是汇编语言也不太符合需求,于是就诞生了B语言以及后来的C语言。但注意,此时的C语言还不是我们今天使用的C语言,因为一种语言它所处编译器环境不同,它编译出的结果可能也不同。总不可能一段代码在这家公司的编译器下编译出是这个结果,而在另一处却是截然不同的结果,那肯定不行呀。所以,在此之上,人们又定下了语言的国际标准。以C语言举例来说吧,最早是由美国的ANSI发布了C语言标准,被称为ANSI C或是C89,后又出现了C90,C99...总的来说,一种语言要想流传下去并且能被广泛使用,那必须要有一个大部分人所认同的国际标准。

C语言的应用方面

  讲了半天C语言的发展历程,那C语言可以在哪些环境下使用呢?

  我们先来看一下电脑的构造。工厂里生产出一台电脑,它只是一个空壳,一个大铁疙瘩(硬件)。要想让它运转起来,我们需要相应的操作系统,如Windows,Linux,在两者之间,还有我们说的驱动,这一部分是所谓计算机的底层。而在它之上,还有我们熟知的上层(应用层),也就是软件等应用。像现在说的C语言,就比较适合做底层开发,也就是操作系统这一块,当然,你要说上层软件它能不能写,也是可以的,我们熟知的QQ就是用C写成的,但是一般不太用C语言写上层软件,术业有专攻嘛。

C语言在VS下的具体场景及部分基础知识

我们所熟知的IDE有VS,DEV C++等等,这里介绍在VS2022下的编译情况。

首先,我们看一段代码

 非常简单的一段代码,在第一行,我们引了一个“头文件” ,也就是工程本身就包含的一个文件。

#include,#是预处理指令,include是指包含,包含了一个stdio的头文件的意思。

为什么要引这个头文件呢?因为在它里面包含了很多函数,我们需要使用这些函数的时候就需要引用这些头文件,比如这里的printf函数,它就属于一个库函数,它要在屏幕上打印信息,我们要使用它就需要引用<stdio.h>得到它的支持。

int main是我们的主函数,每个工程里都需要一个主函数,也只能有一个主函数。(一个工程中可以有多个.c文件,但多个.c文件只能有一个main函数)

int在这里指函数的返回类型是整型,()是加在函数后面的操作符。return 0; 是main函数调用结束时与之相呼应的,表示最后返回的是一个整型。

一般来说,我们的主函数都写成int main()

                                                  {

                                                        return 0;

                                                    }

而有些书上采用的void main 不太推荐,因为那是比较古老的一种写法了。(这里的void指的是返回的是空类型)

 数据类型

  上文中提到了整型这种类型,在C语言中还有char,short,long,longlong,float,double等类型。

它们代表了什么呢?我们依次来看看吧。

char是字符数据类型,在内存中占据1个字节(8比特位);通常以%c  %s打印。

short是短整型,在内存中占据2个字节(16比特位);       通常以%hd 打印。

int是整型类型,在内存中占据4个字节(32比特位);        通常以%d 打印。

long是长整型,在内存中占据4个字节(32比特位);        通常以%ld 打印。

longlong是更长的整型,在内存中占据8个字节(64比特位);通常以%lld 打印。

float是单精度浮点数,在内存中占据4个字节(32比特位);通常以%f 打印。  

double是双精度浮点数,在内存中占据8个字节(64比特位);通常以%lf 打印。

再提一句,%u,%zu打印返回值为size_t(unsigned int类型)即无符号整型。%zu无法打印负数。

%p打印地址。

提到计算机中的单位,还是给小伙伴们普及一下:

计算机中最小单位是bit(比特)  

1字节(byte)=8bit

1KB=1024字节

1MB=1024KB

1GB=1024MB

1TB=1024GB

1PB=1024TB

现在我想在屏幕上打印这些类型的大小,此时需要一个操作符sizeof,它是C语言中的一个关键字,用于计算类型或者变量的大小。来看一段代码:

运行结果在右边。

变量

  变量的概念想必不需要我多说了吧,这里我们主要说下全局变量和局部变量。

  全局变量就是在main函数外部定义的,在整个工程中都可以使用的变量。而局部变量就是main函数内部定义的,只在其内部有效。当局部变量和全局变量冲突时,以局部优先。例如:

 作用域和生命周期

 下面我们来看作用域和生命周期的概念。

作用域就是变量所在的作用区间。局部变量的作用域就是变量所在的局部范围,全局变量的作用域就是整个工程。

  变量的生命周期:变量的创建和销毁的时间段。局部变量的生命周期:当变量进入局部范围,生命开始,出范围生命结束。  全局变量的生命周期就是程序的生命周期。

还是以上一段代码为例。

main函数外部的变量a被创建出来,随着程序的结束,它的生命周期也就跟着结束。

而main函数内部的变量a被创建出来,生命周期开始,当出了main函数,它的生命周期也就结束了。

常量

与变量相对应的是常量,也就是不变的量。

常量有以下几种:

1.字面常量    这也就是我们所说的字面意思的不变的量,例如:5.2 ,100 ,'a',“abcd”.......

2.const修饰的常量   ;例如:const int num  本身num是一个int类型的变量,在前面加了const修饰以后,就变成了常量,不能再修改它的值了。但它本质上还是个变量,只是有了常属性。

3.标识符常量        如#定义的标识符常量 :  #define MAX 1000,这种类型的常量

4.枚举常量(可以一一列举的常量)枚举数默认从0开始,0,1,2.......

这种枚举类型的变量的未来可能取值。

例如,我们要例举性别常量。   enum Sex

                                               {

                                                   MALE

                                                   FEMALE

                                                  SECRET

                                               }

后面用到枚举的Sex只会有这三种值。

好了,今天的分享就打这里了,感谢大家!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值