学数据结构用C还是C++?讲C语言内存管理的书籍或者博客

时间:2017-12-15 07:12:01   浏览:次   点击:次   作者:   来源:   立即下载

自己现在就在学数据结构,老师用的c++,我用的c。

才疏学浅,若有错误,请指正

我只想说,c++完全就是数据结构利器好么!?

(坷垃好处都有啥?谁能说对就给谁o(* ̄▽ ̄*)ブ)

①.定义类,可以把数据结构本身操作和其他函数明显分开

②.还有就是定义模板!简直不要太方便。虽说c也可以写adt,每次程序头上光定义都得⑩几行→_→

③.c++中可以直接对定义的类进行操作!当时我就_(:_」∠)_

举个例子,c的数据结构大多加头,不加头很蛋疼…c中如果栈不加头,而是直接是指向栈定的话。天_(:_」∠)_,如果出栈你还需要传入①个指向栈顶的指针,不然pop了等于没做…(传入的地址是复制过来的地址,不用②重指针没法修改)

而c++可以直接改哦

④.还有c++里动态分配空间

new

就这么简单!c里边可是好多个…(虽然我都①律malloc:D)

⑤.然而c++是方便了些,但是丧失了①点c自由\", \"extras\": \"\", \"created_time\": ①④④③④⑨④⑨⑨② · \"type\": \"answer

讲C语言内存管理的书籍或者博客?

自学C语言,能写出简单的数据结构了。但是不明白C中不同变量(作用域,静态等),常量,函数调用,堆,栈等在内存中的表示。可否指点①②? 个人经历,是从以下几个层面去了解的:

① 编译原理:这部分应该了解几个过程以及它们做了什么,大致理解生成的IR以及代码生成,不用太深(深入下去估计你没时间搞后面的了

书籍的话:除了龙书/虎书/鲸书,可以找点简单的

② 链接/装载/CRT:这部分应该是核心

书籍:《CSAPP》《程序员的自我修养》《Linkers and Loaders》等

资料:glibc文档与源码。

(从CRT可以了解C层面的内存管理malloc/free

(注意ELF文档格式,理解各个section和segment对理解ELF文件的数据代码等分布很有帮助

③ 操作系统:这部分着重了解mm和process部分,尤其注意进程的虚拟地址空间分布,和②中的装载结合理解。

资料:linux kernel

(②中的ELF executable file各个segment怎么映射到进程的虚拟地址空间的...

(还有其他体系结构等等就不说了,

(最后感觉这个坑对提高素养还是挺有用的,不过对工程能力没有太大的作用...

收起

相关推荐

相关应用

平均评分 0人
  • 5星
  • 4星
  • 3星
  • 2星
  • 1星
用户评分:
发表评论

评论

  • 暂无评论信息