<C 通识><1>必须要知道的常识

认识C 就应该 知道 的点

数组

数组指针和指针数组

指针数组 : 指针的数组

数组指针 : 错误名词 – 数组的名也是数组的地址, 相当于数组的指针

编译器

编译的 四个 步骤

gcc 编译指令gcc hello.c -o a a为可执行文件

  1. 预处理.c-.i

    简单处理高级语言

    1. 处理宏字符替换和条件编译
    2. 引入头文件
    3. 删除注释和空白格
    4. 添加行号和文件标识
    5. 保留 #pragma编译指令 编译器需要使用
  2. 编译.i-.s

    将高级语言翻译为汇编语言 gcc -S hello.c -o a.s

    1. 词法分析
    2. 语法分析
    3. 语义分析
    4. 优化代码生成汇编
  3. 汇编.s-.o

    将汇编文件翻译为机器语言 gcc -c hello.c -o a.o

  4. 链接.o-可执行

    机器语言生成可执行文件 gcc hello.c -o a

C开发的四步

编辑 – 编译 – 链接 – 运行

内存

C语言内存模型及作用

RAM – flash

ROM – 内存

C - 内存模型作用
栈区 – stack存放函参和局部变量
效率高,空间有限2M
运算内置于CPU的指令集
堆区 – heap用户自行操作
通常"内存溢出"问题就在这里
释放内存需手动
静态区 – Data全局变量静态变量
初始化和未初始化的数据放在相邻的位置
常量区 – Data常量
代码区 – code存放代码

函数

动态内存的申请和释放

new() 和 malloc()delete() 和 free() 区别

前者会调用构造函数和析构函数

后者单纯申请和释放堆上内存空间

指针

函数指针和指针函数

函数指针 : 指向函数的指针

  1. 指针指向函数第一句话的地址.

  2. (*p)() == p()

    p 就是 指向函数的指针

指针函数 : 返回值为指针的函数

  1. *p() == *(p())

    因为()优先级高于*

关键字

优质文章

C语言中32个关键字详解

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青蓝灰紫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值