2021.10.31总结

一.继续赶C的进度

1.p39  C语言的内存布局

1)了解了C语言内存布局从低到高:

  • 代码段(程序执行代码的内存区域,函数、常量变量等)、
  • 数据段(已经初始化的全局变量和静态局部变量)、
  • bbs段(未初始化的全部变量和静态局部变量)、
  • 堆(动态分配的内存)、栈(函数执行的内存区域,局部变量、参数等) 

2)知道了堆栈的区别,申请方式、释放方式、生存周期、发展方向

3)变长数组VLN是在栈上存放的

4)代码段放在地址是怕堆或栈溢出,覆盖代码

2.p40  高级宏定义

1)宏定义只是机械的替换

2)预处理:宏定义、文件包含、条件编译

3)宏定义可以分为不带参数和带参数的

4)可以用  #undef  终止宏定义的作用域

5)宏定义报错并不是在预处理的时候,一般是在编译的时候

6)带参数的宏定义,类似于

#define MAX(x, y) (((x) > (y)) ? (x) : (y))

3.p41 

1)在函数名前加 inline 指定该函数为内联函数,内联函数会像宏定义那样,在main函数中展开

2)在带参数的宏定义中,# 紧跟一个参数,预处理器会将该参数转换为字符串

#define STR(s) # s

3)##  记号连接运算符,连接多个参数

#define TOGETHER(x,y) x ## y

4)宏定义也支持可变参数

#define SHOWLIST(…) printf(#__VA_ARGS__)

可变参数支持空参数

#include <stdio.h>
#define PRINT(format, ...) printf(#format, ##__VA_ARGS__)
int main(void)
{
        PRINT(num = %d\n, 520);
        PRINT(Hello FishC!\n);
        return 0;
}

二.数据结构

对顺序表相关题目的算法分析有了一定的了解

1.删除表元素,可以重建表或者将不为该元素的前移再改变表的长度

2.小于第一个元素的在前,大于的在后

  • 前后遍历序列,找到两个元素进行交换
  • 将基准点赋值给新变量,从后查找,找到就将其赋值给[i] ;从前查找,找到就将其赋值给[j];最后将基准点赋值给[i]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值