常见C/C++语言基础面试题集合


// 测试点:STL和操作符重载
class Test
{
public:
       Test(int i) {}   ; // 根据mian函数的实现,在此处添加相应的代码
}

void mian()
{
   std:vector vect;
   vect.push_back(10);
}
// 测试点:对于C++内存布局的了解
// 全局/静态存储区、堆栈、常量存储区

// 函数声明1:
const char* Fun()
{
    char p[] = "Hello World!";
    return p;
}

// 函数声明2:
const char* Fun()
{
    char* p = "Hello World!";
    return p;
}
void mian()
{
    printf("%s", Fun()); // 调用函数声明1和声明2的Fun函数,打印字符串的异同?
}

// 测试点:对于对象内存布局,和调用类成员函数的理解

// 类声明1:
class Test
{
    virtual void Fun()
    {
        printf("Hello World!"); // 肯定会崩溃,因为p空指针没有初始化虚函数表
    }
};

// 类声明2:
class Test
{
    void Fun()
    {
        printf("Hello World!"); // 成员函数为thiscall调用约定,如果没有调用成员变量,就不会产生崩溃
    }
};

void mian()
{
    Test* p = 0;
    p->Fun(); // 声明1和声明2其中哪个会使得程序崩溃?
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值