C/C++程序内存中各种变量的存储区域划分是C++面试时常问的一个问题,别的公司我不太清楚,至少某讯是挺爱问的……甚至面试官在面试的时候跟我说,“好的,你能说出这个三个区域就可以了,后面就不做要求了……”。之前看过一篇博客写的很详细,每次面试前临时背一背,现在不想背了,自己过一遍,画一画图加强理解吧。
浅谈字节序
我记得那场面了3个小时的腾讯面试,面试官出了一道颠倒字节序的题目,当时完全不懂……昨晚看书,看到书上讲到了寻址和字节顺序,方才恍然大悟,发现还是自己书读的不够多。
浅谈C/C++整型上下限INT_MAX和INT_MIN及其运算
今天在刷题的时候,遇到几道关于处理32位有符号整数的题目:7.整数反转和 8.字符串转换整数 (atoi)。题目看起来不算很难,但如果在面试时遇到这样的题目,想想面试官是要考察你什么?考察你用long抖机灵吗?考察你会捕获异常吗?我想应该是要考察你对C/C++中整型的上下限的理解以及这方面的细节处理。
initializer_list
我记得有次面试的时候面试官提过一句initializer_list,当时只是知道这个东西是C++11中的新类型,但并没有去深入了解它,今天突然想到了就看了一些文章,随便记录一下。
C++11提供的新类型,定义在
1 | template< class T > |
回忆一下我们初始化一个vector有哪些方法?
计网面试题目梳理
计算机网络。
重要性不言而喻。
考研的那几本书都快翻烂了,书上的东西虽不敢说理解了100%,理解了个60%还是有的。
背是不可能背下来的,这辈子都不可能死记硬背的,最多面试前突击记一下……那就来看看哪些需要记忆的吧~
浅谈C/C++中的char和string
很想写一篇文章来谈一下C/C++中的char和string,顺带也可以说一下python中的string,因为我学习语言的顺序是先学了C再学python然后学C++,一开始对这两个数据类型并没有很敏感,前几天在用C写代码的时候,发现在使用char *和char ch[]的时候有些模糊,而且在给它们初始化或者赋值的时候也会出错。在传统的C里面,我们可以初始化一个定长的char数组,但不能直接给一个定长的char数组赋值:
1 | char ch[20] = "Hello,world!"; // valid |
编译器会提示你:
Trie Tree
A Car Information Management System (车辆信息管理系统) with C
这几天在家接了个私活,帮一个本科生做C语言课设…难度虽然不大,但回想起我大一时C语言的期末考试,又想起前一阵子看到清华贵系大一C语言课设——雷课堂,看着不同学校不同的标准,感慨万千…
开发环境 Linux + gcc 9.0
无GUI界面
数据结构用的是多层次的十字链表,数据存储在文件当中。
浅谈C++关键字之static
1.什么是static
static 是 C/C++ 中很常用的修饰符,它被用来控制变量的存储方式和可见性。
1.1.static的引入
我们知道在函数内部定义的变量,当程序执行到它的定义处时,编译器为它在栈上分配空间,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想将函数中此变量的值保存至下一次调用时,如何实现? 最容易想到的方法是定义为全局的变量,但定义一个全局变量有许多缺点,最明显的缺点是破坏了此变量的访问范围(使得在此函数中定义的变量,不仅仅只受此函数控制)。static 关键字则可以很好的解决这个问题。
另外,在 C++ 中,需要一个数据对象为整个类而非某个对象服务,同时又力求不破坏类的封装性,即要求此成员隐藏在类的内部,对外不可见时,可将其定义为静态数据。
浅谈C++的指针与引用
1.指针与引用
1.1指针和引用的区别
1.指针有自己的一块空间,而引用只是一个别名;
2.使用sizeof看一个指针的大小是4或8,而引用则是被引用对象的大小;
3.指针可以被初始化为NULL,而引用必须被初始化且必须是一个已有对象的引用;
4.作为参数传递时,指针需要被解引用才可以对对象进行操作,而直接对引用的修改都会改变引用所指向的对象;
5.可以有const指针,但是没有const引用;
6.指针在使用中可以指向其它对象,但是引用只能是一个对象的引用,不能被改变;
7.指针可以有多级指针(**p),而引用只有一级;
8.指针和引用使用++运算符的意义不一样;
9.如果返回动态内存分配的对象或者内存,必须使用指针,引用可能引起内存泄露。