1、指针和引用的定义和性质区别:(1)指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。如:int a=1;int *p=&a;int a=1;int &b=a;上面定义了一个整形变量和一个指针变量p,该指针变量指向a的存储单元,即p的值是a存储单元的地址。而下面2句定义了一个整形变量a和这个整形a的引用b,事实上a和b是同一个东西,在内存占有同一个存...
面试题1:变量的声明和定义有什么区别 ?为变量分配地址和存储空间的称为定义,不分配地址的称为声明。一个变量可以在多个地方声明,但是只在一个地方定义。加入extern修饰的是变量的声明,说明此变量将在文件以外或在文件后面部分定义。 说明:很多时候一个变量,只是声明不分配内存空间,直到具体使用时才初始化,分配内存空间,如外部变量。面试题2:写出bool 、int、 float、指针变量与“零值”比较的if语句 bool型数据: if(...
题目地址:https://leetcode-cn.com/problems/bu-yong-jia-jian-cheng-chu-zuo-jia-fa-lcof/题目描述写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号。题目示例示例:输入: a = 1, b = 1
输出: 2提示:a, b 均可能是负数或 0结果不会溢出 32 位整数解题思路拿到题目第一思路是二进制位运算,乘法考虑左移、除法考虑右移,那么加法和减法则考虑按位异或运算和按位与运算,计算a + b 等...
153、 回答下面的问题(1).Void GetMemory(char **p, int num){*p = (char *)malloc(num);//一级指针的值被修改}void Test(void){char *str = NULL;GetMemory(&str, 100);//传递的是一级指针的地址strcpy(str, "hello");printf(str);} 请问运行Test 函数会有什么样的结果?答:输出“world”(3).char *GetMemory(void){char p[] = "hello world"; /*在函数栈(默认局部栈中,如果有静态的则放在全局栈中)中数组p在离开作用域以后内...
五大原则:1、单一职责原则SRP(Single Responsibility Principle):是指一个类的功能要单一,不能包罗万象。如同一个人一样,分配的工作不能太多,否则一天到晚虽然忙忙碌碌的,但效率却高不起来。2、开放封闭原则OCP(Open-Close Principle):一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的。比如:一个网络模块。原来只有服务端功能,而现在要加入客户端功能,那么应当在不用修改服务端功能代码的前提下,就能够增...
C++ 多线程本文主要讲一下C++多线程线程好处·使用线程可以把占据长时间的程序中的任务放到后台去处理·程序的运行速度可能加快 可以释放一些珍贵的资源如内存占用等等。但是多线程是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率。线程是在同一时间需要完成多项任务的时候实现的。 首先 我们现在在学校使用的和大赛使用的C++编程软件一般都是codeblocks(湖南省比赛是的,其他就不知道了...
1. void *mymemcpy(void *dest, const void* src, size_t n); 内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中 1void *mymemcpy(void *dest, constvoid* src, size_t n) {2 assert(dest != NULL && src != NULL);3 4//考虑内存重叠 5if (src < dest && (char*) src + n > dest) {6 7//void*类型强制转换为char* 8char* psrc = (char*) src + n - 1...
import sysdef HandleCPlusPlusComment(lines,i):index = lines[i].find("//")if index !=-1:lines[i]=lines[i][0:index]lines[i]+="\r\n"def HandleCComment(lines,i):global bhasCCommentBeginwhile True:if not bhasCCommentBegin:index = lines[i].find("/*")if index != -1:bhasCCommentBegin = Trueindex2 = lines[i].find("*/",index+2)if index2 != -1:lines[i]=lines[i][0:index]+lines[i][index2+2:-1]bhasCCommentBegin...
原文链接:《陈硕大神在知乎的回答》对于应届生:标准库各容器的基本操作的复杂度。标准库算法的复杂度,例如 std::sort() 的平均复杂度、最坏复杂度(答 O(N^2) 和 O(N log N) 都算对),最坏情况什么时候出现。标准库各容器(deque 除外)的数据结构(标准党勿喷,主流 STL 实现的数据结构都差不多),以及 vector 的容量增长方式。如果回答得特别好,还可以补充问为什么 vector::push_back() 的复杂度是分摊之后的 O(1),作为加...
内推是通过微信上泡面之路推荐的,大家可以关注微信公众号泡面之路,上面提供各名企的内推和校招信息先是笔试,选择没什么好说的(也记不到),基本上都是一些基础问题,数据结构,数据库,计算机网络,操作系统,算法好的基本都可以回答。 笔试最后两题是编程题:1.自己实现atoi函数,只考虑整数函数功能就是将字符串转换成整数并返回。 题目要求只考虑整数就很简单,不用再考虑其他情况。 主要考虑到负数情况就可以了。2.实现一个函数完成四则...
2013年我在厦门c++求职小结1、一般公司出的面试题目中的找错误,都是出自平常公司内部使用过程中出现的真实错误。比如stl 中erase的使用:详细请见 :http://blog.csdn.net/yangruibao/article/details/90400452、在C++中指针可谓之重中之重,大家一定要掌握好基础,有的公司在会出些有关链表的题目来考察大家指针的基本用法,一会有些阅读性的程序来考察大家(大家可以适当关注下二维指针,参考;http://www.cnblogs.com/carekee/a...
11 explicit 显式构造函数explicit修饰的构造函数可用来防止隐式转换class Test1
{
public:Test1(int n) // 普通构造函数{num=n;}
private:int num;
};class Test2
{
public:explicit Test2(int n) // explicit(显式)构造函数{num=n;}
private:int num;
};int main()
{Test1 t1=12; // 隐式调用其构造函数,成功Test2 t2=12; // 编译错误,不能隐式调用其构造函数Test2 t2(12); //...
转自 C/C++ 笔试、面试题目大汇总这些东西有点烦,有点无聊。如果要去C++面试就看看吧。几年前网上搜索的。刚才看到,就整理一下,里面有些被我改了,感觉之前说的不对或不完善。 1.求下面函数的返回值( 微软)int func(x) { int countx =0; while(x) { countx ++; x = x&(x-1); } return countx; }假定x = 9999。 答案:8思路:将x转化为2进制,看含有的1的个数。 2. 什么是“引用”?申明和使用“引用”要注意哪些问题?答:引用...
1.是不是一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态?virtual修饰符会被隐形继承的。private 也被集成,只事派生类没有访问权限而已。virtual可加可不加。子类的空间里有父类的所有变量(static除外)。同一个函数只存在一个实体(inline除外)。子类覆盖它的函数不加virtual ,也能实现多态。在子类的空间里,有父类的私有变量。私有变量不能直接访问。-------------------------------------------...
题目地址:https://leetcode-cn.com/problems/bu-ke-pai-zhong-de-shun-zi-lcof/题目描述从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。题目示例示例 1:输入: [1,2,3,4,5]
输出: True示例 2:输入: [0,0,1,2,5]
输出: True解题思路构成顺子条件:除大小王之外,其余牌数均未出现重复的情况,可通过判断数组相...