牛客C++刷题记录

C++ 运算符优先级

运算符优先级顺口溜:淡云一笔,鞍落三服。

淡:单目运算符;

云:算数运算符;

一:移位运算符;

笔:比较运算符;

鞍:按位运算符;

落:逻辑运算符;

三:三目运算符;

服:赋值运算符。

作者:雨墨初晨

链接:牛客网公司真题_免费模拟题库_企业面试|笔试真题

来源:牛客网

字符串赋值

char a5, *p = q;

p = "abcd"

P是字符型指针,将"abcd"的地址给了P,也就是P指向"abcd"的首地址,也就是 指向'a'的地址;

a是一个字符数组,只能在声明的时候初始化,即char a5="abcd"

声明数组后再赋值是违法的,即a="abcd",因为数组是一个不可修改的左值

但是char *p=a ,p就是一个char *指针,是一个可修改的左值,所以可以将其指向新的字符串"abcd"

作者:牛客351509045号

链接:牛客网公司真题_免费模拟题库_企业面试|笔试真题

来源:牛客网

在构造函数中调用虚函数

cpp 复制代码
#include <iostream>
using namespace std;
 
class A{
  public:
    A ():m_iVal(0){test();}
    virtual void func() { std::cout<<m_iVal<<' ';}
    void test(){func();}
  public:
      int m_iVal;
};
class B : public A{
  public:
    B(){test();}
    virtual void func(){
      ++m_iVal;
      std::cout << m_iVal << ' ';
      }
};
int main(int argc ,char* argv[]){
  A*p = new B;
  p->test();
  return 0;
}

在父类的构造函数中调用虚函数,还是会执行父类的构造函数,不会跑到子类中去,即使有vitual,因为此时父类都还没有构造完成,子类也就还没有构造。本题的输出顺序为:父类构造函数、子类构造函数、指向子类的父类指针(覆盖、多态),所以结果为012.

作者:wentguo

链接:牛客网公司真题_免费模拟题库_企业面试|笔试真题

来源:牛客网

不可重载运算符包括 ?: :: . .* ,sizeof

作为函数参数的数组名退化为指针

cpp 复制代码
char str[] = "http://www.renren.com"  //(21个字符)
char *p = str ; 
sizeof (str ) = ?//(1)
sizeof (p) = ?//(2)
void Foo (char str[100]){
    sizeof(str) = ?//(3)
}
void *p = malloc(100);
sizeof(p) = ?//(4)

22,4,4,4,

八进制

cpp 复制代码
int main() {
    int i = 010, j = 10;
    printf("%d,%d\n", ++i, j--);
    return 0;
}

010 是八进制表示的

相关推荐
无忧.芙桃2 分钟前
数据结构之堆
c语言·数据结构·c++·算法·
醉城夜风~44 分钟前
C++模板详解:从基础到高级全面解析
java·开发语言·c++
RuiZN1 小时前
Muduo---Channel类
运维·服务器·c++
誰能久伴不乏1 小时前
深入理解 C++ 多态:对象模型与底层机制解析
开发语言·c++·架构
ShineWinsu1 小时前
对于Linux:自定义协议(基于TCP)实现网络计算器的解析
linux·网络·c++·网络协议·tcp/ip·面试·网络计算器
郝学胜-神的一滴1 小时前
中级OpenGL教程 026:Assimp库从编译到实战全攻略
c++·unity·游戏引擎·图形渲染·unreal engine·opengl
今夜有雨.1 小时前
C++JSON 解析器
c++·笔记·后端·学习·json
程序喵大人2 小时前
【C++进阶】STL容器与迭代器 - 04 list 和 forward_list 用节点换稳定位置
开发语言·c++·list
lingran__3 小时前
C++_stack和queue和priority_queue(容器适配器)
开发语言·c++
小保CPP3 小时前
OpenCV C++基于极值区域滤波算法的场景文本检测(OCR)
c++·人工智能·opencv·算法·计算机视觉·ocr