1. 一个语法糖

string s1  = (i==1)? "bottle" : "bottles";

代替if -else

2. 预处理宏定义

例如:#define CONST_NAME 2;

若程序多个地方用到2这个常量,用宏定义的好处是,当需要更改这个常量的值比如改为4,只需要在宏定义那里改一次就好了。

3. 数组

数组就是一整块连续的内存。如同python 中的numpy 数组,也是在内存中连续分布,这样读写效率高。而python中的内置类型列表List,在内存中分散存储,读写效率低一些。(https://blog.csdn.net/shaozhenghan/article/details/81104571)

C语言中数组的传递实际上传递的是数组的首地址,这样效率高,免得复制大规模的数组。

关于NULL:对于指针,以及字符串的使用,要记得检查是否是NULL。因为NULL对应内存中地址为0的内存,这是属于操作系统的,访问这部分内存会导致错误,例如段错误(segmentation error)。

下标越界的检查,若访问越界的下标,会导致未预期的结果,比如无意义的值,或者试图访问不可访问的内存导致segmentation error。下标越界编译器检查不出来。

哈佛大学公开课:计算机科学cs50 学习笔记(第7集:数组,其它)相关推荐

  1. 哈佛大学公开课:计算机科学cs50 学习笔记及代码练习(第8集:冒泡,选择排序,递归)

    0. 前言 这门课讲的排序相当清楚,老师用很容易懂的方式讲原理,代码部分在linux下写,用gdb调试,这才是编程的学习方法.记得以前国内本科也学过,但根本没讲清楚.现在研究生又听这门公开课,发现把原 ...

  2. Open SAP 上 SAP Fiori Elements 公开课第一单元学习笔记

    Open SAP 课程地址 这门公开课的教学大纲: 第一单元:Painting the big picture 本课程将使用 SAP Fiori Elements 开发一系列的应用,如下图所示: Th ...

  3. 吴恩达机器学习公开课第一周学习笔记

    Octave是一种编程语言,旨在解决线性和非线性的数值计算问题.Octave为GNU项目下的开源软件,早期版本为命令行交互方式,4.0.0版本发布基于QT编写的GUI交互界面.Octave语法与Mat ...

  4. 哈佛大学公开课:计算机科学cs50 学习笔记(第2集:数据表示与存储)

    视频网址:http://open.163.com/special/opencourse/cs50.html 1. 数据在计算机中的表示与存储 日常生活中用的是10进制数,如: 位 3 2 1 0 权重 ...

  5. 哈佛大学公开课:计算机科学cs50 学习笔记(第3集:C语言,编译器)

    1. 编译器 Compiler 将代码文本按照ASCII码转换为二进制文件 Linux 下用 gcc 或者 g++ 编译器 gcc hello.c    默认在当前路径下生成 a.out 可执行文件, ...

  6. 哈佛大学公开课:计算机科学cs50 学习笔记(第6集:C语言,RAM)

    1. 关于变量对内存的使用 #include <stdio.h>void swap(int, int);int main(void) {int x = 1;int y = 2;swap(x ...

  7. 哈佛大学公开课:计算机科学cs50 学习笔记及代码实现(第9集:归并排序)

    用递归算法实现归并排序 伪代码如下: if n < 2 return; else sort left half of elements; sort right half of elements; ...

  8. 哈佛大学公开课:计算机科学cs50 学习笔记(第4~5集:C语言,编译器)

    1. fflush()函数 此函数包含在stdio.h头文件中,用来强制将缓冲区中的内容写入文件. 函数原型:int fflush(FILE *stream) ; 函数功能:清除一个流,即清除文件缓冲 ...

  9. 哈佛大学公开课:计算机科学cs50 学习笔记(第12集:单链表,内存分配)

    1. 数组的优缺点 数组元素是连续的存储在有限的内存里,这样有两个缺点: --数组的大小是有限的.如果需要给数组的内存(缓冲区buffer)扩容,需要调用realloc()函数.realloc()的工 ...

最新文章

  1. jenkins中配置Ant
  2. 【PAT】A1053 Path of Equal Weight
  3. 我回答的一个粉丝关于模拟SAP事务的问题
  4. 网络知识 | 《图解TCP/IP》读书笔记(上)
  5. stax 和jaxb 关系_XML解组基准:JAXB,STAx,Woodstox
  6. java 根据类名示例化类_Java LocalDateTime类| 带示例的getNano()方法
  7. OpenCV3学习(4.2)——图像常用滤波方法(方框、均值、高斯、中值、双边)
  8. 纯文字海报如何排版更引人注目?
  9. 第11章 使用Vsftpd服务传输文件
  10. python用什么编译器-15款Python编辑器的优缺点,别再问我quot;选什么编辑器”啦
  11. java微信上传图片_微信小程序图片上传java后台(前后端代码)
  12. Linux中的atim、mtime、ctime
  13. 汽车电子EMC测试标准ISO7637-2详解
  14. 示坡线高程判断_地理示坡线
  15. set的erase函数
  16. 在线自习室——新型的学习利器
  17. 2018湖南省第14届大学生计算机程序设计竞赛---卖萌表情
  18. 关于新手必须要理解的几个名词,cookie、session和token
  19. 数字中国城市巡礼之开封:千年古都的智慧新生
  20. 精密电阻排行榜 List of Precision Resistors

热门文章

  1. 电厂采用闭式冷却塔的缘由
  2. CenterNet学习记录(一)——COCO数据处理
  3. easyExcel实战:(三)easyExcel写Excel的解读
  4. 求职面试时的10大自杀式回答,软件测试应聘者千万别用!
  5. oracle exfsys 下 rlm$evtcleanup,Oracle ORA-13607: The specified task or object ,SYS_AUTO_SPCADV_xxx
  6. 高龄白菜java学习第八十九天(java数据结构和算法(10))
  7. js 实现用div 上下分屏
  8. 计算机基础知识菜鸟教程,菜鸟教程:改造最基础知识 电工基础
  9. 补充游戏思考13:游戏服务器杂谈(主要讲mmorpg,年更系列,未完待续10/20)
  10. 【GNSS数据格式类】精密轨道SP3c与SP3d轨道格式说明