C语言 Day1
第一个C语言项目
使用工具:VS2022社区版
printf 打印与 mian() 函数
小试牛刀
| 1 | 
 | 
小结
有关main()函数
main()函数是程序的入口,有且只有一个
一个工程中可以有多个.c文件,但是多个.c文件中只能有一个main函数。
初识数据类型
那么何为数据类型?又分为几种?意义是什么?大小又是多少呢?
数据类型
数据类型,其实在我们生活中经常被使用,但是在编程语言中被重新定义了一下,并且加入了一些新的知识
数据类型 = 一类数 + 这类数可以执行的操作
其中的一类数:指的就是我们数学中的整数,小数等,但是在C语言中分别叫做整型数据,浮点数
当然,C语言不是全部使用数学中的数据类型
这类数可以执行的操作:指的是一个类型的数据可以执行哪些操作,比如:整形数据我们可以进行加减乘除,字符型数据却不可以。当然可以通过某种方法实现
C语言中有哪些数据类型?
| 实际代码 | 表示内容 | 
|---|---|
| char | 字符数据类型 | 
| short | 短整型 | 
| int | 整型 | 
| long | 长整型 | 
| long long | 更长的整型 | 
| float | 单精度浮点数 | 
| double | 双精度浮点数 | 
实际运用
| 1 | //字符类型 | 
分这么多类型的意义是什么呢?
因为对于编程语言来说,许多数据都是人为设定的,我们输入这些数据到计算机中之后,如果我们事先不让计算机知道某一个数据的长度是多少,那么计算机就不知道应该如何处理长度,所以就会产生错误
因此,用不同数据类型在内存中占用的存储长度不同,将数据类型进行分类
这样的好处就是,我们事先让计算机知道了这个数据是什么类型,并且由于每一个数据类型的长度,都是固定好的,这样计算机处理的时候就会按照一定的长度去选数据
不同数据类型的空间大小是多少?
操作符 sizeof
sizeof的使用
在实现展示数据类型大小之前,首先我们先来引进一个新的操作符——sizeof
sizeof是一个操作符,其主要功能是计算类型或者变量所占空间的大小
| 1 | int main() | 
运行后的输出结果
但是结果并没有单位,不能让我们直观的感受到它的大小,那么问题来了,结果所隐含的单位是什么呢?
sizeof 的单位
sizeof 的单位是计算机中常见的单位——字节Byte
计算机中最小的单位
作为常识我们知道计算机识别的是二进制即1,0
而1所占用的空间大小为1Bit,0所占用的空间大小为0Bit
所以我们得知Bit就是计算机中最小的单位
常见的计算机单位的换算
1Byte=8Bit
1Kb=1024Byte
1Mb=1024Kb
1Gb=1024Mb
1Tb=1024Gb
1Pb=1024Tb
不同数据类型的空间大小
根据上面知识的学习我们已经可以了解到,输出结果的单位为Byte
那么数据类型的实际大小为:
| 实际代码 | 实际大小/Btye | 
|---|---|
| char | 1 | 
| short | 2 | 
| int | 4 | 
| long | 4 | 
| long long | 8 | 
| float | 4 | 
| double | 8 | 
产生大小的概念之后,我们发现short短整型的大小为2Bit可以理解,但是long长整型为什么没有int整型长呢?
那是因为在C语言的标准中 sizeof(long)>=sizeof(int)
初识常量变量
在上面的学习中已经了解到,不同的数字类型可以表示不同的东西,例如:字符用char,数据可以选择用int
在我们的日常生活中也有许多的数据,他们大体可以分为两类:一种是不可变的数据,另一种是一定可变的数据。前者像,血型,性别等等,后者例如,工资,年龄体重,而在c语言当中这两种数据分别被称为:常量和变量
常量=不可改变的量
变量=能被改变的量
定义变量的方法
| 1 | int main() | 
变量的初步应用
| 1 | int main() | 
拓展:不同的数据类型打印用不同的%来表示
int-%d
float-%lf
double-%f
变量的分类
- 局部变量
- 全局变量
局部变量:在大括号内定义的变量
全局变量:在大括号外定义的变量
为了更好的理解举个例子
| 1 | //全局变量 - {}外部定义的变量 | 
但是此时输出的结果会是什么呢?10or100?
很显然结果是10但是为什么呢?
是因为在C语言中:当全局变量与局部变量名称冲突时,局部变量优先。因此我们不建议把全局变量和局部变量名字写成一样
变量的使用
scanf() 函数
在使用变量的时候,我们又要引进一个新的函数——scanf() 函数
scanf()函数是一个输入函数
scanf()函数的使用
我们可以来写一个代码求两个整数的和,来具体感受一下scanf()函数的具体表达
| 1 | int main() | 
但是当我们直接运行时可能会出现报错
scanf()函数报错的解决办法
当我们使用VS编译器的时候,scanf()函数报错是正常现象。官方已经给了我们解决方式
- 在源文件的第一行中添加#define CRT_SECURE_NO_WARNINGS 1(推荐)
- 使用scanf_s()函数来替换scanf()函数 (不推荐)
那么为什么不推荐scanf_s()函数呢?
是因为scanf_s()函数并不是c语言中所规定的标准,而是由VS编译器自己提供创造的。使用scanf_s()函数可能会导致在分享代码时,他人使用的是非VS编译器就会导致整个函数报错。











