哈佛大学公开课:计算机科学cs50 学习笔记(第7集:数组,其它)
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集:数组,其它)相关推荐
- 哈佛大学公开课:计算机科学cs50 学习笔记及代码练习(第8集:冒泡,选择排序,递归)
0. 前言 这门课讲的排序相当清楚,老师用很容易懂的方式讲原理,代码部分在linux下写,用gdb调试,这才是编程的学习方法.记得以前国内本科也学过,但根本没讲清楚.现在研究生又听这门公开课,发现把原 ...
- Open SAP 上 SAP Fiori Elements 公开课第一单元学习笔记
Open SAP 课程地址 这门公开课的教学大纲: 第一单元:Painting the big picture 本课程将使用 SAP Fiori Elements 开发一系列的应用,如下图所示: Th ...
- 吴恩达机器学习公开课第一周学习笔记
Octave是一种编程语言,旨在解决线性和非线性的数值计算问题.Octave为GNU项目下的开源软件,早期版本为命令行交互方式,4.0.0版本发布基于QT编写的GUI交互界面.Octave语法与Mat ...
- 哈佛大学公开课:计算机科学cs50 学习笔记(第2集:数据表示与存储)
视频网址:http://open.163.com/special/opencourse/cs50.html 1. 数据在计算机中的表示与存储 日常生活中用的是10进制数,如: 位 3 2 1 0 权重 ...
- 哈佛大学公开课:计算机科学cs50 学习笔记(第3集:C语言,编译器)
1. 编译器 Compiler 将代码文本按照ASCII码转换为二进制文件 Linux 下用 gcc 或者 g++ 编译器 gcc hello.c 默认在当前路径下生成 a.out 可执行文件, ...
- 哈佛大学公开课:计算机科学cs50 学习笔记(第6集:C语言,RAM)
1. 关于变量对内存的使用 #include <stdio.h>void swap(int, int);int main(void) {int x = 1;int y = 2;swap(x ...
- 哈佛大学公开课:计算机科学cs50 学习笔记及代码实现(第9集:归并排序)
用递归算法实现归并排序 伪代码如下: if n < 2 return; else sort left half of elements; sort right half of elements; ...
- 哈佛大学公开课:计算机科学cs50 学习笔记(第4~5集:C语言,编译器)
1. fflush()函数 此函数包含在stdio.h头文件中,用来强制将缓冲区中的内容写入文件. 函数原型:int fflush(FILE *stream) ; 函数功能:清除一个流,即清除文件缓冲 ...
- 哈佛大学公开课:计算机科学cs50 学习笔记(第12集:单链表,内存分配)
1. 数组的优缺点 数组元素是连续的存储在有限的内存里,这样有两个缺点: --数组的大小是有限的.如果需要给数组的内存(缓冲区buffer)扩容,需要调用realloc()函数.realloc()的工 ...
最新文章
- jenkins中配置Ant
- 【PAT】A1053 Path of Equal Weight
- 我回答的一个粉丝关于模拟SAP事务的问题
- 网络知识 | 《图解TCP/IP》读书笔记(上)
- stax 和jaxb 关系_XML解组基准:JAXB,STAx,Woodstox
- java 根据类名示例化类_Java LocalDateTime类| 带示例的getNano()方法
- OpenCV3学习(4.2)——图像常用滤波方法(方框、均值、高斯、中值、双边)
- 纯文字海报如何排版更引人注目?
- 第11章 使用Vsftpd服务传输文件
- python用什么编译器-15款Python编辑器的优缺点,别再问我quot;选什么编辑器”啦
- java微信上传图片_微信小程序图片上传java后台(前后端代码)
- Linux中的atim、mtime、ctime
- 汽车电子EMC测试标准ISO7637-2详解
- 示坡线高程判断_地理示坡线
- set的erase函数
- 在线自习室——新型的学习利器
- 2018湖南省第14届大学生计算机程序设计竞赛---卖萌表情
- 关于新手必须要理解的几个名词,cookie、session和token
- 数字中国城市巡礼之开封:千年古都的智慧新生
- 精密电阻排行榜 List of Precision Resistors
热门文章
- 电厂采用闭式冷却塔的缘由
- CenterNet学习记录(一)——COCO数据处理
- easyExcel实战:(三)easyExcel写Excel的解读
- 求职面试时的10大自杀式回答,软件测试应聘者千万别用!
- oracle exfsys 下 rlm$evtcleanup,Oracle ORA-13607: The specified task or object ,SYS_AUTO_SPCADV_xxx
- 高龄白菜java学习第八十九天(java数据结构和算法(10))
- js 实现用div 上下分屏
- 计算机基础知识菜鸟教程,菜鸟教程:改造最基础知识 电工基础
- 补充游戏思考13:游戏服务器杂谈(主要讲mmorpg,年更系列,未完待续10/20)
- 【GNSS数据格式类】精密轨道SP3c与SP3d轨道格式说明