
C/C++
文章平均质量分 81
混说Linux
百度研发工程师
展开
-
你真的知道C语言函数调用的内幕吗?
C语言使用函数调用,我们再熟悉不过了,但是函数调用在内存中究竟发生了什么真的清楚吗?只有搞清楚内存里的内幕,才算完全搞懂函数的调用。原创 2023-02-15 10:38:00 · 173 阅读 · 0 评论 -
看完还不会C语言指针,锤自己!
指针使得 C 语言能够更高效地实现对计算机底层硬件的操作,而计算机硬件的操作很大程度上依赖地址,指针便提供了一种对地址操作的方法,在一定意义上,指针是c语言的精髓,所以一定要耐心看完。原创 2023-02-02 08:32:46 · 158 阅读 · 0 评论 -
类成员初始化和赋值
定义一个变量,就是在内存中为你定义的这个变量开辟一段内存空间,如果这个变量没有初始化,那么系统会随机给这个变量赋一个值,这个值我一般称它为"垃圾数"。 没有初始化的变量我认为它是没有意义的,是在浪费内存,就比如人刚出生的时候上帝需要给他赋予点东西,比如条件反射,比如哭,比如吮吸........这样人的意义得以体现。 对于类的成员来说,我们最好的做法就是在构造函数中对每一个类成员进行初始化。 我们来看一个简单的例子: class name { public: name(int aa, in原创 2021-12-13 17:31:01 · 2826 阅读 · 2 评论 -
c++中引用作为返回值
引用的意义: 1. 引用可以看作某个变量的“别名”,作为某个变量的别名而存在,因此在一些场合可以代替指针。 2. 引用相对于指针来说具有更好的可读性和实用性,能起到指针的部分作用,但是比指针安全。 3. 引用在c++里面可以说是一把利器,引用用的好的话可以写出非常精妙的程序。 引用的本质: 1. 引用在C++中的内部实现是一个常指针。 Type& name <--> Type* const name 2. C++编译器在编译过程中使用常指针作为引用的内部实现,因此引用所占原创 2021-12-06 13:40:57 · 3122 阅读 · 0 评论 -
C语言中的const竟是个 “冒牌货“
const是限定一个变量不允许改变(只读),使用const在一定程度上可以提高程序的安全性和可靠性。 // 我们先来看看const的基础知识 void main() { const int a; int const b; // 和前面一个意思一样,代表常整型数 const int *c; int const *d; // 和前面一个意思一样,表示所指向的内存数据不能被修改,但是本身可以修改 int * const e; /原创 2021-12-03 09:06:29 · 683 阅读 · 0 评论 -
C/C++ 程序的内存布局
在32位系统总的地址空间大小是2^32 = 4GB 在windows情况下,默认将高地址的2GB空间分配给内核(当然也可以分配1GB),而在Linux情况下,默认将高地址的1GB空间分配给内核,内核空间以外剩下的空间给用户使用也被称为用户空间。 Linux进程地址空间分布 栈空间(stack): ...原创 2021-07-01 16:43:56 · 293 阅读 · 0 评论