干货|UNSW T3 COMP1521 Week3 C语言知识点大放送!

原创 2019年10月10日 澳洲IT圈


点击上面蓝字关注我们



文 |  小泷包/ 阿铃

编辑 | 小泷包



UNSW 大神带你搞定大学课程

2019全年进入3学期紧张的学习模式,让刚刚入学的IT萌新们全程处于高强度学习压力状态,每周的quiz或者assignment就搞得人仰马翻; 匠人联合新南IT专业全能HD学霸开启保驾护航模式,让你轻松无压力PASS每个课程。面对上课蒙蔽,代码不会,考试紧张,我们都会帮你一一迎刃而解。




UNSW大神Online公开课


COMP1521 将会限时公开课大放送

注意是免费!免费!免费!

课程内容涉及:


如何学习1521,如何轻松应对每个quiz,作业难题

最后轻松pass,拿走HD, 走上人生巅峰







一转眼,现在已经是第三学期Week 4了, 很多小伙伴可能还没进入到学习模式。然而面对众多的专业课,也只能在心里默默感叹自己上辈子可能是条蜀道!因为真的太!难!了!





令人振奋的好消息来啦!


我们找来了新南IT专业的学霸小哥哥小姐姐

一起梳理了知识点,针对大学课程内容进行每周回顾与讲解,

总结一周知识点,紧跟学校课程节奏,

以最快的时间帮助小伙伴们答疑解惑,缓解大家的学习压力

赶紧收藏保存好这份笔记!

让你在盗墓,打怪的同时

也能够

震撼经验住全场!


具有两年丰富一线辅导经验

COMP1521成绩95的铃神带着这份笔记来了!


知识葵花宝典大放松

准备好接招吧, 知识点总结福利发送啦


COMP1511 Week 3 知识点大放送

>>Part 1: C语言复习

ps. 考虑到C的索引的时候会给,并且用法可以用man

数据结构:

Stack:后进先出

Queue:先进先出

*Priority Queue:这是2521的内容

这门课并不会对StackQueue的细节进行考察。所以只要做到了解个概念就可以了。至于汇编那边的内存stack... _(:з))_ 到时候再说。gccflag(-O, -E 等等) 的作用: man gcc去查


>> Part 2: 夹在内存与数据之间的各种惨烈修罗场

考点1:内存

现代电脑的内存一般8G起步。通常而言,在这门课中将内存看做是一段连续的,以1byte为单位的,像Array一样的空间。

在这门课中,将内存看做一个大Array就可以了。在操作系统部分会详细介绍内存管理方面的细节。但是关于内存访问的细节(例如CPU偏移量等等),这门课并不会涉及到。所以不必太过紧张。只要能做到理解MIPS下对CPU对内存的访问模式就可以了.



考点2: 内存中的C程序

C程序将其所占用的内存分为4个区域:



int a[10];

int *d;

         intmain(){

         int b[10];

         int *c = malloc(4 * 10);

}

 需要注意的是,由于历史原因,stack的增长是按照从高到低的地址顺序。

a.      代码段 code region

其存储程序的可执行机械码

b.      数据段 data region

数据段存储那些需要在整个程序的执行过程中都保留的数据,如全局变量,常量等

c.        heap region

堆存储那些在程序执行过程中分配的内存空间(如通过malloc函数分配的)这些被分配的空间在被free之前都会被占用。(当然,关闭程序会自动释放内存空间)

d.       stack region

存储函数中的局部变量,参数等等。当函数执行结束时,栈内的内存会被释放。


考点3:数据在内存中的编码形式

a.      pointer

指针实质上是用一段内存空间存储一个内存地址

数据指针保存在数据段,堆,栈段

而代码段保存有函数指针(function pointers

指针的值必须是与数据类型相符合的

例如:

 

b.      int

a] 用不同的方式表示整数

i = 42     直接表示

i = 0x2A   16进制:转换成16进制(0-9, A-F)后在前面加0x

i = 052    8进制:转换成8进制(0-8)后在前面加0 (数字0,不是o


b] 数据类型:

short int i =123S     短整型,通常占用2Bytes

long int = 123L       长整型,通常占用8Bytes

unsigned int i =123U  无符号整形,与int相同,4 Bytes

c] 数据的表示

1) unsigned int

2) signed int


对于负数,如果单纯的通过在符号位上存储1来表示他是个负数的话,加减运算会出现很多麻烦而且还会出现20这种奇葩的情况。因此为了方便起见,计算机是通过【补码】来表示负数

也就是说

-x = ~x + 1

x 等于对x求反码然后加一。


c. float

果需要存储带有小数位的数据,那么就需要用上浮点类型。就像int 长短整型等等亚种一样,浮点数也分为2种.


d.char

char 主要有两种编码,ASCIIUTF-8Uniode

ASCII编码每个字符占用1byte(右边的7bit位存数据,最左侧的bit总是0

考试时查ASCII表的方法:命令行输入 man 7 ascii

UTF-8编码每个字符占用1-4byte,其中第一个byte规定这个字符所占用的长度,

有多少个byte,第一个byte开头处就有多少个连续的1,并在1后面标一个0来避免和表示字符的1混在一起。由于UTF-8需要兼容ASCII编码,故当长度 = 1的时候,他的编码和ASCiI 致。

除了第一个byte,其他的byte一律以10开头


e.  Arrays

Array占用一段连续的内存空间



这个array “a” 实质上是一个指向内存中元素

a[0]的指针,也叫做基址。因此也可以通过在对这个基址加减偏移量的方式来访问array中的其他元素。

例如,v[i] = *(v + i)

其中 v + i 表示在v[0]地址的基础上找出array v接下来的第i个元素的地址。

i是偏移量,表示内存地址相对于基址的偏移。

而后,*( ) 所起到的作用是取出,并返回括号内内存地址所存储的具体数值。

 

也就是说,*(v+i)所做的是取出这个array中第i - 1个元素。


f.    Structs

结构体是一串数据元素的组合。如下图所示,数据元素排列的顺序会影响结构体实际占用的内存空间。不过好在,现实中我们不需要太担心这个问题,因为编译器会帮我们搞定一切不必要的麻烦。


g. Unions

union,中文名“联合体、共用体”,在某种程度上类似结构体struct的一种数据结构,共用体(union)和结构体(struct)同样可以包含很多种数据类型和变量。

不过区别也挺明显:

结构体(struct)中所有变量是“共存”的——优点是“有容乃大”,全面;缺点是struct内存空间的分配是粗放的,不管用不用,全分配。而联合体(union)中是各变量是“互斥”的——缺点就是不够“包容”;但优点是内存使用更为精细灵活,也节省了内存空间。用的时候小心点,很容易出现未知错误。




h. Enumerated Types

列举型别。

typedef enum {RED, YELLOW, BLUE } PrimaryColours;

列举性别的意思是,这个数据类型(PrimaryColours)所允许的值只有花括号中的RED, YELLOW, BLUE。就像下拉选框一样,只允许特定的值。他实质上做的事情是让花括号中的每一个选项对应一个int的值(例如1,2,3...






小本本有木有记下来啊?
学习到这里,如果还不明白的话
没有关系!
联系小编
让HD小哥哥小姐姐亲自授课讲解哦


扫码入群
更有定期免费资料福利发送哦!
更有免费简历模板独家放送哦!



还有其他课程群哦



为什么选择匠人学院课程辅导


匠人臻选多门课HD大神(成绩90%+)做tutor,

同时又有专业职场老司机做顾问,

                            无论问题深或浅,都有大神相助                                 

任职tutor了解你的课程考试作业与项目全部,都是该课以及相关课7分大神                 匠人多种优惠活动帮你节约成本,同时也为学习好的同学提供舞台                          可以根据学生情况灵活制定课程内容与时间

                          

Tutor 服务方式

我们为同学们提供多种形式的服务,IT匠人会提供如下服务:

VIP定制课程1对1辅导,护航冲刺班,作业辅导班,
作业审查服务,考试冲刺班

课程之间的区别

覆盖院校

 
服务院校

澳洲各大院校,主要包括 (但不仅限于)



我们可以辅导



这些语言涵盖了大学IT/CS专业的课程,由于大学课程要一一列出来会太多,所以有需要的小伙伴可以联系我们的客服。


Tutor成绩

所有Tutor都在所在学校对应学科获得高分

4轮面试,层层选拔

只选择最优秀的导师/tutor提供教学。


都是高分,猴赛雷有没有


报名方式


 添加悉尼匠人小乐微信(sydneyjiangren)报名:



匠人学院

致力于建立属于澳洲IT华人的

学习&工作交流平台

让所有IT华人

落地找工作不再是难事

你点的在看,我都认真当成了喜欢。



收藏 已赞