搜狐畅游测试开发一面试题..

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tiangell/article/details/78086597

面试很简短,自我介绍、问玩过什么游戏,有没有冲过钱,有什么体会。

C++很基础的问题:

1、指针和引用的区别

指针变量存储的是一个地址,指向一个存储单元,引用只是个别名,不额外占用内存。

指针可以有多级 int **p,而引用不可以。

指针可以为NULL,但是引用不可以,在定义时必须初始化

指针可以变,指向别的存储单元,引用初始化后不可变,自始至终依附于同一个变量

"sizeof引用"得到的是所指向的变量(对象)的大小,而"sizeof指针"得到的是指针本身的大小

指针(++)指向下一个内存,里面存的是什么与当前的无关,引用++相当于原变量的值++:

int a;
int &b=a;
int* p=&a;
b++; //=a++
(*p)++; //=a++

2、const的用法

基本概念:避免对不该改动的变量造成变动。

修饰基本的数据类型:一般常量、数组、指针或引用;

函数:参数const通常用于参数为指针或引用的情况、返回值

类:类的const成员变量只能在构造函数的初始化表中进行

  class A
  {
        const int SIZE = 100;     // 错误,企图在类声明中初始化const数据成员
        int array[SIZE];          // 错误,未知的SIZE
  };
这样是对的

 class A
 {…
        A(int size);      // 构造函数
        const int SIZE ; 
 };
 A::A(int size) : SIZE(size)    // 构造函数的初始化表
{
      …
}
错误:

A::A(int size)
{
     SIZE=size;  //error 赋值的方式是不行的
}



3、return、break和continue的区别

break跳出循环,例如for,while,do-while都可以跳出,但不跳出函数。继续执行后面的语句

return跳出整个函数体,其实主要目的就是用于想中断函数执行,返回调用函数处。

continue语句的作用是跳过循环本中剩余的语句而强行执行下一次循环。continue语句只用在for、while、do-while等循环体中,常与if条件语句一起使用,用来加速循环:

for ( int i = 0; i < 10; i++ )
{
    if ( i < 5 ) continue;
    printf();
}
那么前5次循环都不会输出东西,直接进入下一次循环,后5次循环才会输出。


展开阅读全文

没有更多推荐了,返回首页