什么是C语言?
在回答这个问题之前,我们需要回答什么是计算的机编程语言?
——简单来讲,就是计算机语言
生活中我们常用汉语、英语等等,这些语言是人和人之间交流的语言。
而计算机语言就是人和计算机交流的语言。
计算机语言有C语言,JAVA,C++,D语言等等。已经有上千种计算机语言,而C语言不过是其中一种语言而已。
C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。
C语言编译器有Clang(苹果)、GCC(Linux)、MSVC(VS)等等。
这里我用的是vs2019给大家演示代码
2.编写我们的第一条C语言代码
ps:写代码时所有的字母符号都必须是英文与英文形式。
这里我想打印"hello world"这一串字符,我们是这样打印的
这样代码就执行并打印出来了,那我们是怎么执行的呢?执行的原理是什么呢?
那首先我们先了解这个代码的入口——main函数。
main函数叫主函数,因此main函数是程序的入口。
这里代码成功运行了,但因为没有任何指令也没有执行任何动作。
因此C语言代码必须要有主函数,C语言代码中main函数有且仅有一个!!如果有多个main函数,代码便会报出这种错误:
也许有的人会说我在一个文件会报错,那我分几个文件打呢?
test.c和yuan.c都是属于一个工程但代码仍然报错。
因此:一个工程(项目)中可以由多个.c文件,但是多个.c文件中有且仅有一个main函数。
那么,我们是怎样打印"hello world"的呢?
这里我来介绍一个库函数:printf。
printf函数是什么呢?
printf函数是专门用来打印数据的库函数。
库函数是C语言标准库中提供给我们的,不是我们自己实现的函数。
因此每个库函数的使用都要包含头文件,因此我们就先包含printf的头文件。
printf的头文件是stdio.h,在代码中我们这样写的:
这里有的同学也许会疑惑:include是什么?stdio.h又是什么?且慢,看我一一解答:
include是包含的意思,下面的代码就是包含stdio.h这个头文件的意思。
那stdio是什么意思呢?
std是标准的意思(standard)
i是输入的意思(input)
o是输出的意思(output)
因此这个头文件的意思是:标准输入输出头文件。未来只要有输入输出的操作时就要包含这个头文件。只要输入输出的函数使用都要包含这个头文件。
好的,看到了这里,还是要给还要继续看的小可爱们一个大大的赞。
3.数据类型
平时我们网购,我们会发现各种各样的商品。这些商品也分很多类型,C语言的数据也有分类
我们写代码是为了解决我们生活中的问题,比如算一个圆的面积或者圆柱体积,那么我们计算的时候的圆周率是一个浮点数,或者圆柱的高是一个整形等等。
比如hello world,这里面都是英文,C语言总有一个字符类型来包含吧。
因此C语言数据类型有这几类:
char——字符类型
short——短整型
int——整形
long——长整型
long long——更长的整形
float——单精度浮点数
double——双精度浮点数
//long long类型是C99标准的。
//小数在C语言中对应关系是浮点数。为什么是叫做浮点数呢?
例如56.7,可以用科学计数法写成5.67*10^1。科学计数法表示的时候,小数点是可以移动的,所以在C语言里我们把小数称之为浮点数。
那么这些类型又有什么特点呢?
如下图:
这里的%d是指定格式来打印,这是指定的整形格式来打印。
那么C语言还有其他指定的数据类型吗?有的。
话说回来,我先来拓展一个知识,sizeof。
sizeof是一个操作符,是用来计算变量大小的。
//拓展一下,\n是转义字符,意思是换行,作用和回车键一样。
因此:
欸,那这里打印出的数字是什么,单位是什么?
这就不得不谈谈计算机常见的内存单位:
bit——比特位;
byte——字节;
KB、MB、GB等等...
我们知道计算机是二进制运行的也就是0~1,0和1我存起来就给一个bit的空间就可。
把这样八个bit组成时就是一个byte的大小。因此:
1 byte=8 bit;
1 KB=1024 byte;
1 MB=1024 KB;
...以此类推
一个char是1个字节,也就八个bit。
一个short是2个字节,也就是16个bit.
...int
欸,那这里为什么long不比int长呢?
那是因为刚刚我实在×86环境下打印的,在×64环境下打印long就是8个字节,因此在C语言标准规定
sizeof(long)>=sizeof(int);
有的同学也许会问,为什么整形有这么多类型?看下图:
左边的数字是代表2个bit位能代表的范围是0~3,右边4个比特位能代表0~15,空间越大,能表示的范围越大,能储存的数字明显更多。因此int能比short出村更多值,long能比int储存更多值...
希望大家有所收获,欢迎留言讨论。