贝尔面试

  今天去贝尔面了次试,感觉比IBM简单很多,但是还是有很多的不懂,需要好好学习。

今天笔试又发现很多问题。

 

int *ip[4];  // array of pointers to int,指针数组,
int (*ip)[4]; // pointer to an array of 4 ints,数组指针,指向数组的指针

 

const int * P 和 int const * p 是一个东西,搞了半天我。

 

在 c++ 中new 和 malloc最大的不同时 new是可以用于构造的,而malloc只是用于分配内存。

 

char str[]="hello";

我这个一直认为是sizeof(str) = 4,但是这次却发现是6,应该是5+1,哎,太挫了。

 

char str[10];

如果是sizeof(str)则是10,但是如果将str作为参数传递则是4。如

void fun(char str[10]){

  cout<<sizeof(str)<<endl;

}

这样的输出结果是4

这东西还是很搞的。

 

在c++中要注意使用int * p =new int(5);是申请一个int,值为5.要和int * p = new int [5];不同。

 

在使用c++构造函数和拷贝构造函数方面我还是没有搞清楚。

如果有个类是

Class Human;

 

Human Fuc(Human h1){//作为参数使用,调用拷贝构造

   return h1;//临时对象需要析构

}

 

Human h1; //直接申明调用构造函数

Human h2 = Fuc(h1);//使用返回对象构造,使用拷贝构造

 

像上面这段代码,num在构造时候+1,在拷贝构造时没有+1,但是由于使用拷贝构造生成的对象也是会调用析构函数,会造成num多减2次。使得num变为负数。

 

还有几道算法的题目。先是怎么判断一个单链表有没有环。这道题目上次做过,使用标记位即可。但是这次不让用标价位,要使用2个指针。

 

网上的说法是用2个指针,一个快,一个慢的,慢的每次走一格,快的每次走2格。如快慢指针能够相遇则表示有环,否则没有。

 

还问了道题目。让我将一个数组逆置。我居然说是用个临时数组先倒过来存放一遍,再存到原来那个数组里,真是笨死了。

应该用2分法的。发觉写个这么简单的函数我也要写半天,太费了

明天要去盛大面了,加油。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值