1.简述Makefile的作用
makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。
makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。
2.sizeof与strlen的区别:
sizeof(…)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。
它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。
strlen(…)是函数,要在运行时才能计算。参数必须是字符型指针(char*)。当数组名作为参数传入时,实际上数组就退化成指针了。
它的功能是:返回字符串的长度。该字符串可能是自己定义的,也可能是内存中随机的,该函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符NULL。返回的长度大小不包括NULL。
3.什么是野指针?如何避免野指针。
野指针:指向不确定地址的指针变量。避免方法:
1.不去访问没有权限的内存(平时我们正确使用指针的时候,系统应经将相应的内存分配给用户,但是如果指向没有分配的内存,系统会判定我们没有权限)
2.不去访问已经释放了的内存
4.c语言分配内存的方式有哪些?
c语言中常见的内存错误有哪些?
分配内存:1、从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在,例如全局变量,static变量。

2、在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放,栈内存分配运算内置于处理器的指令集中,效率很高,凡是分配的内存容量有限。

3、从堆上分配。也称动态内存分配。程序在运行的时候用malloc或者new申请任意多少的内存,程序员自己负责在何时用free或者delete释放内存。动态内存的生存期有程序员决定,使用非常灵活,但如果在堆上分配了空间,就有责任回收他。否则运行的程序会出现内存泄漏,频繁的分配和释放不同大小的堆空间将会产生堆内碎块。
内存错误:1、指针没有指向一块合法的内存 2、为地址分配的内存太小 3、内存分配成功,但并未初始化 4、内存越界 5、内存泄漏 6、内存已经释放,但是继续通过指针来使用
5.Static全局变量与普通变量的区别?
Static局部变量与普通局部变量的区别?
static函数与普通函数的区别?
static全局变量与普通的全局变量的区别:static全局变量只初使化一次,防止在其他文件单元中被引用;
static局部变量和普通局部变量的区别:static局部变量只被初始化一次,下一次依据上一次结果值;
static函数与普通函数的区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝
6.#include <> 和 #include “” 有什么区别?
#include< >引用的是编译器的类库路径里面的头文件。
#include“ ”引用的是你程序目录的相对路径中的头文件。
7.char *const p; char const *p; const char p 三者的区别。
第一个和第三个是一样的, p都是指向const char类型的指针, 不可以赋值给
p, 就是不可通过这个指针改变它指向的值.
第二个: char * const p是指向char的常指针, 指针需在声明时就初始化, 之后不可以改变它的指向.

liunxC下零碎知识点的总结相关推荐

  1. 【CSS基础】盒子模型、浮动布局、ps切图、定位及一些零碎知识点

    该系列文章是博主学习前端入门课程的笔记,同时也为了方便查阅,有任何问题都欢迎在评论区提出.本文主要介绍CSS基础知识,包括盒子模型.浮动布局.PS切图.定位.元素的显示与隐藏和一些零碎知识点 思维导图 ...

  2. Java基础零碎知识点,有这一篇就够了!

    Java零碎知识点整理 Java命名规范 数据类型 三元运算符 Random类 switch语句 方法重载 方法的参数传递 ArrayList集合创建 基本数据类型对应的引用数据类型 创建集合的代码实 ...

  3. 高等数学(下)知识点总结(2)

    高等数学(下)知识点总结 期末,总结一下高数下的知识点 第八章,第九章见上一篇博客 文章目录 高等数学(下)知识点总结 第八章_空间解析几何和向量代数 第九章_多元函数微分法及其应用 第十章_重积分 ...

  4. 大学物理(下)知识点总结

    大学物理(下)知识点总结(持续更新) 文章目录 大学物理(下)知识点总结(持续更新) 静电场 知识点总结 习题精选 磁场 知识点总结 习题精选 期中复习总结 电磁场 知识点总结 习题精选 狭义相对论力 ...

  5. 【RabbitMQ】回顾下RabbitMQ知识点,还记得哪些?

    回顾下RabbitMQ知识点,还记得哪些? 什么是RabbitMQ? 为什么要选择RabbitMQ,不选其他MQ? 使用MQ可以解决那些问题? RabbitMQ如何保证消息的有序性? 如何防止MQ消息 ...

  6. 从 Option Explicit 开始的零碎知识点(一)

    这两天一直在围着 Visual Basic 转,敲了一些例子,记录了一些零碎的知识点,自己都觉得自己有点小幼稚,不过还好啦,至少没有放弃! <span style="font-fami ...

  7. 从 Option Explicit 开始的零碎知识点

    这两天一直在围着 Visual Basic 转,敲了一些例子,记录了一些零碎的知识点,自己都觉得自己有点小幼稚,不过还好啦,至少没有放弃! Option Explicit'定义变量X Dim xPri ...

  8. 【C语言】C语言零碎知识点

    目录 1.sizeof和strlen ​2.函数形参(很重要) ​2.1传值调用 ​2.2传址调用 ​3.函数的嵌套调用和链式访问 ​3.1函数的嵌套调用 ​3.2函数的链式访问 ​4.隐式类型转换 ...

  9. C++零碎知识点(一)

    1.sizeof用法总结 ①与strlen比较 strlen 计算字符数组的字符数,以"\0"为结束判断,但不包括. sizeof 计算数据(数组.变量.类型.结构体等)所占内存空 ...

最新文章

  1. linux c 通过套接字获取本地远程地址信息 getsockname getpeername 简介
  2. 【leetcode】937. Reorder Log Files
  3. Linux下mysql设置密码
  4. SAP HANA中的SLT简介
  5. 转录组分析综述A survey of best practices for RNA-seq data analysis
  6. ios基础之 ARC
  7. mysql设置自动递增_《MySQL数据库》约束条件和自增长序列
  8. WebBrowser一点心得,如果在Javascript和Winform代码之间实现双向通信
  9. iis搭建php出现301,IIS服务器PHP下三种实现301重定向的方法
  10. serve注解是加在哪个类_PHP 8新特性之Attributes(注解)
  11. hexo博客搭建及主题优化(二)
  12. sqlite3_英英词典
  13. python 经典图书排行榜_书榜 | 计算机书籍(3.30-4.5)销售排行榜
  14. 谈谈我对面向对象的理解
  15. uniapp中回退到上一页面并触发函数的方法
  16. matlab状态空间模型构建函数ss
  17. 【WLAN】【测试】Linux下aircrack-ng的应用之空口抓包全解
  18. 计算机键盘打字基础知识,电脑打字基础知识,新手自学【入门篇】
  19. “35岁危机”不再,算法岗应届生平均月薪超3.2万,人工智能行业掀抢人大战!...
  20. 2018王鼎杯-fakebook-详细解说

热门文章

  1. 从今天开始,每天记录一点东西
  2. 使用canvas绘制楼梯(canvas直线绘制练习)
  3. vuejs构建的单页面应用history模式子页面微信分享在iOS中遇到的问题
  4. 萌宝出街,熊孩子逆袭小小“时髦精”
  5. 贪心算法-Best cow line-字典序问题
  6. log_miner操作(日志挖掘)
  7. freemarker 概述
  8. java二叉树 最大值_leetcode刷题笔记-654. 最大二叉树(java实现)
  9. Shell脚本中$0、$?、$!、$$、$*、$#、$@
  10. springboot基本属性注入