• C语言面试笔记(8/26)


    在32位的机器环境下,char、short、int、float、double这样的内置数据类型sizeof值的大小分别为1,2,4,4,8;

    C++标模板库(standard Template Library,STL)里面提供了10种通用的容器类。vector(向量)中的元素是按照插入的顺序排列的;deque(队列)中的元素是按照进队列的顺序排列的;list中的元素是无序的;map中的元素是采用了平衡二叉树进行排列的,是为了具有更高的查询效率;

    在所有类说明中,内部定义的成员函数都是内联函数

    符号优先级比较:

    算数运算符>关系运算符>与(&&)>或(||)>赋值运算符

    a、C++中成员函数被重载的特征:

    (1)相同的范围(同一个类中);

    (2)函数名字相同;

    (3)参数不同(与参数类型无关,参数类型相同时不是重载);

    (4)virtual关键字可有可无;

    b、覆盖是指派生类的函数覆盖基类函数,规则如下:

    (1)函数名字相同;

    (2)参数相同;

    (3)基类函数必须有Virtual 关键字;

    c、“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下:

    (1)如果派生类的成员函数与基类的成员函数同名,但是参数不同,此时,有无virtual关键字,基类的成员函数都会被隐藏;

    (2)如果派生类的函数与基类的函数同名,并且参数相同,但是基类的函数没有关键字“virtual”,此时,基类的成员函数被隐藏;

    以下程序输出值为多少?

    short i=65537;

    int j=i+1;

    printf("i=%d,j=%d ",i,j);

    输出为i=1;j=2;

    解析:

    因为short占俩个字节即16bit,这里i=65537转化为二进制则为1 0000 0000 0000 0001;溢出了,所以i的值为1;j=i+1=2;

    下面俩段代码中的for循环分别执行多少次?

    1、

    unsigned short i,j;

    for(i=0,j=2;i!=j;i+=5,j+=7){}

    2、unsigned short i,j;

    for(i=3,j=7;i!=j;i+=3,j+=7){}

    unsigned short型占16bit,最大值为65536;

    看成一个跑圈追人的问题;

    1、可以认为j比i落后65536-2=65534;j每次追赶2个,63334/2=32767;

    2、同理j比i落后65536-4=65532;j每次追赶4个,65532/4=16383

  • 相关阅读:
    RecycleView使用心得【2】
    URL解析
    CSS 动画总结
    包含块 width 和 height 值的总结
    JS 获取页面大小
    常见跨域方法原理及其用例
    CSS 计数器
    JS 对象总结
    JS 原型以及原型链
    关于未能找到源文件“.NETFramework,Version=v4.0.AssemblyAttributes.cs”问题
  • 原文地址:https://www.cnblogs.com/hai5111/p/7436684.html
Copyright © 2020-2023  润新知