1.什么是c语言
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易 的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语 言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的 C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超 级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制 定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。 [1] 目前2011年12月8 日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标 准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉 字编程。
C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。 其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
2. 第一个C语言程序
创建的步骤程序
第四步便是写代码
注意:
//c语言代码中一定要有main函数
//主函数
//printf是一个库函数
//专门用来打印数据的
//std - 标准
//i - input
//o - output
//标准的主函数的写法
注意://c语言的规定
//main函数是程序的入口
//main函数有且仅有一个
3. 数据类型
为什么出现这么的类型?
注意:存在这么多的类型,其实是为了更加丰富的表达生活中的各种值。
每种类型的大小是多少?
%zd:打印,sizeof:谁的大小
类型的使用:
int 是类型,age只是名字(可以是各种各样的名字),这样相当于向内存申请了int大小的空间
通过类型,给予名字便可以创建变量
创建变量的本质是向内存申请空间,有这个空间,我便可以向里边存放一些数据
4. 变量、常量
生活中的有些值是不变的(比如:圆周率,性别,身份证号码,血型等等)
有些值是可变的(比如:年龄,体重,薪资)。
不变的值,C语言中用常量的概念来表示,变得值C语言中用变量来表示。
4.1 定义变量的方法
4.2 变量的命名
只能由字母(包括大写和小写)、数字和下划线( _ )组成。
不能以数字开头。
长度不能超过63个字符。
变量名中区分大小写的。
变量名不能使用关键字。
4.3 变量的分类
局部变量
全局变量
当局部变量和全局变量同名的时候,局部变量优先使用。
建议变量名字不要写一样的
变量的使用
好的习惯:创建变量的同时给它一个值
如果scanf函数运行出错:
为何不用scanf_s :
4.4 变量的作用域和生命周期
作用域
作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用 的而限定这个名字的可用性的代码范围就是这个名字的作用域。
简单来说就是变量在哪里可以使用,哪里就是作用域
1. 局部变量的作用域是变量所在的局部范围。
2. 全局变量的作用域是整个工程。
生命周期
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
2. 全局变量的生命周期是:整个程序的生命周期。
4.5 常量
C语言中的常量和变量的定义的形式有所差异。
C语言中的常量分为以下以下几种:
字面常量
const 修饰的常变量
#define 定义的标识符常量
枚举常量
注:
上面例子上的 pai 被称为 const 修饰的常变量, const 修饰的常变量在C语言中只是在语法层面限制了 变量 pai 不能直接被改变,但是 pai 本质上还是一个变量的,所以叫常变量。
5. 字符串+转义字符+注释
5.1 字符串
这种由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),或者简称字符 串。
注:字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串 内容。
5.2 转义字符
假如我们要在屏幕上打印一个目录: c:\code\test.c
我们该如何写代码?
扩展
这里就不得不提一下转义字符了。转义字符顾名思义就是转变意思。 下面看一些转义字符。
\0
\?
\'(\"同理)
\\
注意路径打印时要写两个\\才能出现想要的结果
\ddd
\xdd
注意:不要超出ask值的范围
做题
6. 注释
1. 代码中有不需要的代码可以直接删除,也可以注释掉
2. 代码中有些代码比较难懂,可以加一下注释文字
注释风格
注释有两种风格:
C语言风格的注释 /*xxxxxx*/ 缺陷:不能嵌套注释
C++风格的注释 //xxxxxxxx 可以注释一行也可以注释多行
注释的好处
7. 选择语句
如果你好好学习,校招时拿一个好offer,走上人生巅峰。 如果你不学习,毕业等于失业,回家卖红薯。 这就是选择!
c语言的实现选择:
if else
switch
例子
8. 循环语句
有些事必须一直做,比如我日复一日的讲课,比如大家,日复一日的学习。
C语言中如何实现循环呢?
while语句-讲解
例子
for语句(后期讲)
do ... while语句(后期讲)
9. 函数
函数的特点就是简化代码,代码复用。
10. 数组
要存储1-10的数字,怎么存储?
C语言中给了数组的定义:一组相同类型元素的集合
10.1 数组定义
定义一个整形数组,最多放10个元素
10.2 数组的下标
C语言规定:数组的每个元素都有一个下标,下标是从0开始的。
数组可以通过下标来访问的。例如
10.3 数组的使用
打印单个元素
打印所有元素
11. 操作符
C语言非常灵活:
c语言提供了非常丰富的操作符,使得使用起来就比较灵活
简单介绍为主,后面重点讲。
注意:如果想只要小数点后一位只需要把%f写成%.1f就可以,两位就%.2f
(取模操纵符的两个操作符只能是整数)
(类型)
12. 常见关键字
C语言提供了丰富的关键字,这些关键字都是语言本身预先设定好的,用户自己是不能创造关键字的。
变量的命名
c语言中创建变量的变量名不能是关键字
12.1 关键字 typedef
typedef 顾名思义是类型定义,这里应该理解为类型重命名。
12.2 关键字static
在C语言中: static是用来修饰变量和函数的
1. 修饰局部变量-称为静态局部变量
2. 修饰全局变量-称为静态全局变量
3. 修饰函数-称为静态函数
12.2.1 修饰局部变量
修饰局部变量
结论: static修饰局部变量改变了变量的生命周期
让静态局部变量出了作用域依然存在,到程序结束,生命周期才结束。
12.2.2 修饰全局变量
结论:
一个全局变量被static修饰,使得这个全局变量只能在本源文件内使用,不能在其他源文件内用。
12.2.3 修饰函数
结论: 一个函数被static修饰,使得这个函数只能在本源文件内使用,不能在其他源文件内使用。
register
13. #define 定义常量和宏
14. 指针
14.1 内存
内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的 。
所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。 为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。
以十六进制展示出来的地址编号
14.2 指针变量的大小
指针大小在32位平台是4个字节,64位平台是8个字节。
15. 结构体
结构体是C语言中特别重要的知识点,结构体使得C语言有能力描述复杂类型。
比如描述学生,学生包含: 名字+年龄+性别+学号 这几项信息。
这里只能使用结构体来描述了。
结构体的使用有两种写法