学数据结构用C还是C++?讲C语言内存管理的书籍或者博客
自己现在就在学数据结构,老师用的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怎么映射到进程的虚拟地址空间的...
(还有其他体系结构等等就不说了,
(最后感觉这个坑对提高素养还是挺有用的,不过对工程能力没有太大的作用...
- 5星
- 4星
- 3星
- 2星
- 1星
- 暂无评论信息