豆芽八股专栏笔记之c语言篇

一、c语言

1.1 main函数

int argc   char*argv[]

argc :表示输入有几个参数

argv[]是输入参数的数组

argv[0]:指向程序运行的全路径名

argv[1]指向输入的第二个字符

带参数的main可以使得我们的程序灵活度大大提高

1.2 if  else

记住else是就近匹配的

1.3 switch、break

在switch语句中要是不出现break,就会一直往下面执行,一直没的执行才会退出

1.4 for、while、do-while

没看懂

1.5  枚举

enum DAY{MON=1,TUE,WED,THU,FRI}day;

枚举数组中第一个数据默认是1,后面比前一个大1

1.6 结构体与共有体

结构体:

struct Books{
   char  title[50];
   char  author[50];
   char  subject[100];
   int   book_id;
} book;

共有体

union Data{
   int i;
   float f;
   char  str[20];
};

共用体一种特殊的数据结构,允许相同的内存位置存储不同的数据类型 ,成员变量的首地址相同共享内存空间,最大成员空间就是整个共用体的内存空间,但这样空间内容会被不停的覆盖,所有一次只能操作一个变量

1.7 函数传参

1.8 全局变量与静态变量

1、局部变量和全局变量可以相同,但是在函数中局部变量会覆盖全局变量的值

2、全局变量在整个工程文件中有效,静态全局变量只是在.c中有效

1.9 数据类型

整型数据的存储涉及到原码、反码、补码的概念。数值在计算机的存储里,最左边的一位代表符号位,0代表正数,1代表负数

原码:为二进制的数,10的原码是0000 1010

反码: 正数的反码与原码相同,负数的反码是0变1,1变0

-10 的原码是 1000 1010  反码是 1111 0101

补码:正数的补码与原码相同:如 10 原码为 0000  1010   补码 0000 1010 

          负数的补码为反码 +1    如 -10  反码是 1111 0101  补码是 1111 0110

在windows 32  与window 64 中  各种数据类型大小都是一样的但是指针数据类型不同

32

 64

1.10 类型转换 

记不住

1.11  优先级

记不住’

1.12  位运算

~  取反

^  异或  两个数据位不同就是1,相同就是0

1.14  数组指针和指针数组

数组指针本质就是一个指针,设有定义int (*p)[n];且()优先级高,可以说明p是一个指针,且指向一个整形的一维数组

指针数组本质就是数组,假设有定义int *p[n];且[]优先级高,可以理解为先与p结合成为一个数组

1.15  指针与字符串

字符串后面有个/0

字符串其实就是一个指向其首字符的指针

1.16   指针与函数

函数指针就是指向函数的指针变量,每一个函数都有一个入口地址,该地址就是函数指针所指向的地址

int (*f)(int a)

函数指针的应用场景是回调,别人的库调用我们的函数

指针函数  本质就是函数,返回值是指针

int *f(x,y);

1.17 指针与结构体

结构体指针强制类型转换的巧妙应用

将指针强制转换成结构体类型,数组的值就会赋给结构体成员变量

1.18 内存布局

 没看懂

1.19 野指针与内存泄漏

野指针:指向一段未知空间

1、指针变量未被初始化

2、指针指向的地址空间已经被free或delete

3、指针操作超越了作用域

4、使用智能指针

内存泄漏:申请一段空间后,使用完毕没有释放

1、new和malloc申请资源使用后,没有用delete和free释放;                                                             

2、子类继承父类时,父类析构函数不是虚函数。                                                                                                                                                                                                                        

1.20 野指针与内存申请

1.21 内存碎片

内部碎片是由于采用固定大小的内存分区,当一个进程不能完全使用分给它的固定内存区域时就产生了内部碎片,通常内部碎片难以完全避免(多了)

外部碎片是由于某些未分配的连续内存区域太小,以至于不能满足任意进程的内存分配请求,从而不能被进程利用的内存区域。再比如堆内存的频繁申请释放,也容易产生外部碎片(不够)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值