C语言基础入门——保姆式教程(2022版最全最新整理)

文章目录

  • 一. 前言
  • 二. 第一个C语言程序
  • 三. 数据类型
  • 四. 变量和常量
    • a)变量
      • 1)局部变量
      • 2)全局变量
    • b)常量
      • 1)字面常量(相当于直接写)
      • 2)const修饰的常量
      • 3)#define定义的标识符常量
      • 4)枚举常量
  • 五. 字符串+转义字符+注释
    • a)字符串
      • 1)字符数组
    • b)转义字符
    • c)注释
  • 六. 选择语句(分支语句)
    • a)if语句
    • b)switch语句
      • 1)default
  • 七. 循环语句
    • a)while语句
    • b)for语句
    • c)do … while语句
    • d)goto语句
  • 八. 函数
    • a)函数分类
      • 1)库函数
      • 2)自定义函数
    • b)函数参数
      • 1)实际参数(实参)
      • 2)形式参数(形参)
    • c)函数调用
      • 1)传值调用
      • 2)传址调用
    • d)函数的嵌套调用和链式访问
      • 1)嵌套调用
      • 2)链式访问
    • e)函数的声明和定义
      • 1)函数声明
      • 2)函数定义
    • f)函数递归
  • 九. 数组
    • a)一维数组
      • 1)一维数组的创建
      • 2)一维数组的初始化
    • b)二维数组
      • 1)二维数组的创建
      • 2)二维数组的初始化
    • c)数组越界
    • d)数组作为函数参数
    • e)数组名
  • 十. 操作符
    • a)算术操作符
    • b)移位操作符
      • 1)左移
      • 2)右移
        • x1)逻辑移位
        • x2)算术移位
    • c)位操作符
      • 1)&:按位与
      • 2)|:按位或
      • 3)^:按位异或
    • d)赋值操作符
    • e)单目操作符
      • 1)!逻辑反操作
      • 2)sizeof
      • 3)~ 按(二进制)位取法
      • 4)++ 前置、后置++
      • 5)– 前置、后置 —
      • 6)(类型)强制类型转换
      • 7)& 取地址操作符 * 解引用操作符
    • f)关系操作符
    • g)逻辑操作符
    • h)条件操作符
    • i)逗 表达式
    • j)下标引用、函数调用和结构成员
      • 1)下标引用[]
      • 2)函数调用()
    • k)表达式求值
      • 1)隐式类型转换
        • x1)整形提升
      • 2)算术转换
      • 3)操作符的属性
  • 十一. 常见关键字
    • a)auto
    • b)extern
    • c)register
    • d)signed
    • e)unsigned
    • f)static
      • 1)static修饰局部变量
      • 2)static修饰全局变量
      • 3)static修饰函数
    • g)union
    • h)void
    • i)typedef
  • 十二. define定义常量和宏
    • a)define定义常量
    • b)define定义宏
  • 十三. 指针
    • a)指针的基本认识
    • b)指针的意义
    • c)野指针
      • 1)指针未初始化
      • 2)指针越界访问
      • 3)指针指向的空间释放
    • d)如何规避野指针
      • 1)指针初始化
      • 2)小心指针越界
      • 3)指针指向空间释放即使置NULL
      • 4)避免返回局部变量的地址
      • 5)指针使用之前检查有效性
    • e)指针运算
      • 1)指针+-整数
      • 2)指针-指针
      • 3)指针的关系运算
    • f)指针和数组
    • g)二级指针
    • h)指针数组
  • 十四. 结构体
  • 十五. 补充
    • a)scanf函数
    • b)调试
      • 1)调试的基本步骤
      • 2)快捷键
        • x1)内存
        • x2)调用堆栈
        • x3)打断点
        • x4)常用快捷键
      • 3)常用的调试技巧
        • x1)使用assert
        • x2)尽量使用const
        • x3)养成良好的编码风格
        • x4)添加必要的注释
        • x5)避免编码的陷阱
      • 4)编译常见的错误
        • x1)编译型错误
        • x2)链接型错误
        • x3)运行时错误

一. 前言

二. 第一个C语言程序

这里说明下:

  • 由于printf的使用,需要引入头文件#include 。头文件就是为了这个printf函数的实现

  • 在运行程序的时候,如果使用的是VS2013版本的,会发现反应很快,输出一闪而过,这时候就需要设置一下为了看到代码运行的结果。如果用的是VS2013以上的版本,则不需要设置,都已经配置好了。将其子系统那块改成控制台即可。

  • 注:C语言标准:sizeof(long) >= sizeof(int)

  • 注:sizeof 是关键字,操作符,不是函数

  • 计算机中的单位

English 名称 换算
bit 比特
byte 字节 1 byte = 8 bit
KB 千字节 1 KB = 1024 byte
MB 兆字节 1 MB = 1024 KB
GB 吉字节 1 GB = 1024 MB
TB 太字节 1 TB = 1024 GB
PB Petabyte 1 PB = 1024 TB
  • 计算机中识别二进制 – 0和1
  • 识别八进制 – 0-7
  • 识别十进制 – 0-9

四. 变量和常量

a)变量

  • 定义:有些数据一定可变:工资、年龄、体重
  • 变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段

1)局部变量

  • 局部变量的作用域是变量所在的局部范围
  • 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束

2)全局变量

  • 全局变量的作用域是整个工程
  • 全局变量的生命周期是:整个程序的生命周期

注意:

2)const修饰的常量

  • #define定义的标识符不占内存,只是一个临时 的符 ,预编译后这个符 就不存在了

4)枚举常量