说明:我是一个刚刚接触C语言,学习完还是有很多不理解的地方,然后写下博客,做一下整理,方便自己学习。写的不好哪里有错,欢迎大佬在下面指教。
1.什么是C语言
C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发,能以简易的方式编译、处理低级存储器,并且还具有仅产生少量的机器语言和不需要任何运行环境支持就可以运行等特点,在操作系统、单片机、驱动程序、编译器等领域都有广泛应用。说的通俗一点就是人与计算机交流的语言。
2.第一个代码
int是整形类型与代码中return 0前后呼应
mian函数是工程的入口,一个工程中main函数有且只有一个。
这里调用printf(print(打印)f-- - function(函数))是库函数中的一个函数,所以要引用<stdio.h>头文件,stdio的意思是标准输入输出
3.数据类型
生活中描述一个人名字"张三”,体重145.5,年龄21,身高178.6等就要用不同类型去存放信息。在C语言中有以下常见7种类型
定义变量
char ch = ‘a’
float weight = 145.5
int age = 21
double height = 178.6
能定义这么多类型,他们的空间大小是不一样的,合理利用可以节省空间。求数据类型大小需要用到sizeof(数据类型)
打印出来是1 2 4 4 8 4 8 单位字节
%c打印字符,%s打印字符串,%d打印整形,%f打印浮点数,%lf打印双精度浮点数。
C99规定只要**sizeof(long)>=sizeof(int)**就可以了。
4.常量,变量
生活中的有些值是不变的(比如:圆周率,性别(?),身份证号码,血型等等)
有些值是可变的(比如:年龄,体重,薪资)
不变的值,C语言中用常量的概念来表示,变得值C语言中用变量来表示。
(1)定义变量:变量定义的方式:类型 变量名 = 初始值
float weight = 145.5;
int age = 21;
double height = 178.6;
(2)变量的类型:局部变量,全局变量
(3)局部变量
当局部变量与全局变量同名是局部变量优先
这里虽然是局部变量优先,但不建议使用同样的名字,容易出BUG
下面来看一个例子
现在把printf()放进{}
提示:main函数内部的变量一定是局部变量,但局部变量的作用范围不一定是main函数内部,而是局部变量所在的局部区域。
(4)变量的使用
计算两个从键盘输入的两个数的和,并打印出来。这里使用一输入函数scanf,这个函数包含在stdio.h。
描述scanf函数unsafe,这个时候我们在头文件上方添加#define _CRT_SECURE_NO_WARNINGS 1 即可解决这个问题。
(5)变量的作用域和生命周期
作用域
作用域(scope),程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的
而限定这个名字的可用性的代码范围就是这个名字的作用域。
-
局部变量的作用域是变量所在的局部范围。
此时 a 的作用域就在黄色标注的{}此时此时 a 的作用域就在黄色标注的{} ,printf()函数不能正常打印 a
-
全局变量的作用域是整个工程。
在同一个.C文件
在不同.C文件中只需声明一下外部变量 关键字 extern
生命周期
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段- 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
- 全局变量的生命周期是:整个程序的生命周期。