1. 不可以将布尔变量直接和TRUE、FALSE、1、0进行比较。应该用if(flag)或者if(!flag)。

整型变量直接用”==“或者”!=“与0进行比较。

浮点变量不可以直接用”==“或者“!=”与数字比较。

指针变量用“==”和“!=”与NULL直接进行比较。

2. 可以使用诸如if(NULL == P)来避免if(NULL=P)类错误。

3. 在有循环嵌套的时候,尽量将长循环放在最内层,这样可以提高效率。

4. 可以使用#define来定义宏常量,用const来定义const常量。const常量有数据类型,宏常量没有数据类型。编译器可以对const常量进行类型安全检查。在C++中,const常量 完全取代宏常量。

5. C语言中,函数参数传递有值传递和指针传递两种方式;C++语言中,函数参数传递有值传递、指针传递以及引用传递。如果函数无参数,使用void进行填充。

6. 使用宏断言assert对程序进行检查。assert仅在Debug版本起作用。Debug版本主要用于内部调试,Release版本主要发行给用户使用。

7. return语句不可以返回“栈内存”的“指针”或者“引用”,因为该部分内存在函数体结束时会被自动销毁。

8. 内存分配方式,如全局变量、static变量等在程序编译时就已经分配好的内存在静态存储区域。如函数内局部变量等存储单元在栈上分配内存。如用malloc或new申请的动态内 存从堆上分配。

9. 内存容量计算。使用sizeof计算数组容量是可以的,若使用sizeof识别指针变量所指向的容量大小,只能得到一个指针变量的字节数,而不是其所指的内存容量。另外,当数组 作为函数的参数进行传递时,该数组自动退化为同类型的指针。

10. 当指针p被free掉之后,其地址仍然不变,但是该地址对应的内存是垃圾,p变成“野指针”,此时需要把p设置为NULL。

11. inline是一种“用于实现的关键字”,而不是一种“用于声明的关键字”。定义在类声明中的成员函数将自动地成为内联函数。内联可以提高执行效率,但是以代码膨胀为代价,要 权衡执行效率和内存空间。

12. C++编译器编译任意一个类时,会自动产生四个缺省函数:无参数构造函数,拷贝构造函数,析构函数,赋值函数。

《高质量C++/C编程指南(林锐)》学习笔记相关推荐

  1. 第二行代码学习笔记——第六章:数据储存全方案——详解持久化技术

    本章要点 任何一个应用程序,总是不停的和数据打交道. 瞬时数据:指储存在内存当中,有可能因为程序关闭或其他原因导致内存被回收而丢失的数据. 数据持久化技术,为了解决关键性数据的丢失. 6.1 持久化技 ...

  2. 第一行代码学习笔记第二章——探究活动

    知识点目录 2.1 活动是什么 2.2 活动的基本用法 2.2.1 手动创建活动 2.2.2 创建和加载布局 2.2.3 在AndroidManifest文件中注册 2.2.4 在活动中使用Toast ...

  3. 第一行代码学习笔记第八章——运用手机多媒体

    知识点目录 8.1 将程序运行到手机上 8.2 使用通知 * 8.2.1 通知的基本使用 * 8.2.2 通知的进阶技巧 * 8.2.3 通知的高级功能 8.3 调用摄像头和相册 * 8.3.1 调用 ...

  4. 第一行代码学习笔记第六章——详解持久化技术

    知识点目录 6.1 持久化技术简介 6.2 文件存储 * 6.2.1 将数据存储到文件中 * 6.2.2 从文件中读取数据 6.3 SharedPreferences存储 * 6.3.1 将数据存储到 ...

  5. 第一行代码学习笔记第三章——UI开发的点点滴滴

    知识点目录 3.1 如何编写程序界面 3.2 常用控件的使用方法 * 3.2.1 TextView * 3.2.2 Button * 3.2.3 EditText * 3.2.4 ImageView ...

  6. 第一行代码学习笔记第十章——探究服务

    知识点目录 10.1 服务是什么 10.2 Android多线程编程 * 10.2.1 线程的基本用法 * 10.2.2 在子线程中更新UI * 10.2.3 解析异步消息处理机制 * 10.2.4 ...

  7. 第一行代码学习笔记第七章——探究内容提供器

    知识点目录 7.1 内容提供器简介 7.2 运行权限 * 7.2.1 Android权限机制详解 * 7.2.2 在程序运行时申请权限 7.3 访问其他程序中的数据 * 7.3.1 ContentRe ...

  8. 第一行代码学习笔记第五章——详解广播机制

    知识点目录 5.1 广播机制 5.2 接收系统广播 * 5.2.1 动态注册监听网络变化 * 5.2.2 静态注册实现开机广播 5.3 发送自定义广播 * 5.3.1 发送标准广播 * 5.3.2 发 ...

  9. 第一行代码学习笔记第九章——使用网络技术

    知识点目录 9.1 WebView的用法 9.2 使用HTTP协议访问网络 * 9.2.1 使用HttpURLConnection * 9.2.2 使用OkHttp 9.3 解析XML格式数据 * 9 ...

  10. 安卓教程----第一行代码学习笔记

    安卓概述 系统架构 Linux内核层,还包括各种底层驱动,如相机驱动.电源驱动等 系统运行库层,包含一些c/c++的库,如浏览器内核webkit.SQLlite.3D绘图openGL.用于java运行 ...

最新文章

  1. Codeforces Global Round 13 E. Fib-tree
  2. shell如果文件夹不存在则创建
  3. 写 Python 爬虫 5 年,复制粘贴一直是我赖以生存的核心技能,直到我看到这些腾讯阿里大佬们的技术公众号,太强了...
  4. 特征工程(part3)--扁平化、过滤和分块
  5. Java8-如何构建一个Stream
  6. 怎么样采集声音的波形和频率_示波器采集模式
  7. python怎么写运维脚本_python运维脚本实例
  8. python怎么去掉换行符_python去除字符串中的换行符
  9. vue3.0架手架搭建以及注意事项
  10. 怎样在LaTeX中方便输入带圆圈的数字
  11. 查看数据库实例名的方法:
  12. Java深圳工作面试经历(真实经历)!!!
  13. 怎么用matlab画误差椭圆,基于MATLAB的导线网平差软件设计及误差椭圆的绘制.docx...
  14. MATLAB如何读取文件某一行的内容,如何读取文件的某一行
  15. 为什么有些人上午容易犯困?
  16. 多媒体计算机技术2017年四月,2017年4月模拟题-多媒体技术
  17. PTA基础编程题目集
  18. SAS常用基础代码例子-数据描述性分析
  19. MSSQL On Linux AlwaysOn
  20. 基于Heritrix的特定主题的网络爬虫配置与实现

热门文章

  1. 基于jquery实现的web版excel
  2. 2020最新 程序员数学(基础+进阶)
  3. 大数据时代的医学公共数据库与数据挖掘技术简介
  4. MATLAB 学习笔记(5)MATLAB 数据的导入和导出
  5. 北大中文核心期刊目录(2004年版)
  6. mac下安装mysql 5.7.11卡住_Mac 安装mysql5.7 注意事项
  7. Django OAuth2 linkedin的第三方登录
  8. SQL语句基本用法格式
  9. 条形码类型及其字符集和长度的说明
  10. java-用cmd运行java命令