栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

牛客基础打卡 6.2

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

牛客基础打卡 6.2

1. 引用必须在声明的时候就初始化!!

若要对常量进行引用,C++中的右值引用可以实现:int&& x=10;

2.下列选项中能够正确表示逻辑“异或”运算的是:(a||b)&&!(a&&b)

"异或运算"即:相同为0(a与b为0,0或1,1时结果为0),相异为1(a与b为0,1或1,0时结果为1)。

3.下面的代码段程序运行后的输出结果是:8,7,7,8

int main() {
    int a = 7, b = 8, *p, *q, *r;
    p = &a;
    q = &b;
    r = p;
    p = q;
    q = r;
    printf("%d,%d,%d,%dn", *p, *q, a, b);
}

 

4.假设函数原型和变量说明如下,下面调用非法的是(B)

void f3(int(*p)[4]);
int a[4]={1,2,3,4},
int b[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
 

定义了一个函数,其参数为一个指向一维数组的指针。 

对于一维数组:(定义:int a[4])

(1)一维数组名a是个地址,地址类型为:int *。

(2)一维数组名取地址&a是个地址,地址类型同:int (*p)[4], 也即&a指向含4个int元素的一维数组。

对于二维数组b[3][4],这个二维数组也可以可以看成一个含3个成员的一维数组,每一个成员含有4个int元素:

(1)b[0]是个一维数组名,也是个地址(为该一维数组首元素int b[0][0]的地址),地址类型为:int *。

(2)&b[0]是个地址(为整个一维数组的地址),地址类型同:int (*p)[4], 也即&b[0]指向含4个int元素的一维数组。

因此:

(3)b是个地址,地址类型同:int (*p)[4],也即b指向含4个int元素的一维数组

(4)&b是个地址,地址类型同:int (*p)[3][4],也即&b指向含3x4个int元素的2维数组

总结:

① 数组名,是指向它的第一个一级成员的指针(数组首元素地址)。

② 数组名取地址,是指向整个数组的指针。

5.  (1)只能使用成员函数重载的运算符有:=、()、[]、->、new、delete。

     (2)单目运算符最好重载为成员函数。

     (3) 对于复合的赋值运算符如+=、-=、*=、/=、&=、!=、~=、%=、>>=、<<=建议重载为成员函数。

     (4) 对于其它运算符,建议重载为友元函数(将函数定义为全局函数,在类中声明为友元friend即可)。

运算符重载的方法是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数,以实现相应的运算。也就是说,运算符重载是通过定义函数实现的。运算符重载实质上是函数的重载。重载运算符的函数一般格式如下:

          函数类型 operator 运算符名称 (形参表列)
          { 
          对运算符的重载处理
          }

重载为类成员函数时参数个数应=原操作数个数(该运算符要求的的位数)-1(后置++、--除外)
重载为友元函数(全局函数)时参数个数=原操作数个数,且至少应该有一个内置类型的形参。

 6.如何判断两个数二进制表达有多少位不同?

 方法:任何一个数的二进制表达与1相与就可以知道其最后一位为0/1。

每次让这两个数与1相与(判断最后一位是否相同),再进行右移操作(无符号数在左边添0,有符号数在左边添符号位):一位一位比较。

int countBitDiff(int m, int n ) {
    //一个二进制数和1相与,就可以知道这个二进制数的最后一位是1还是0
    //右移一位=在左边添0(无符号数添0,有符号数添符号位)
    int cnt=0;//二进制位有多少位不同
    for(int i=0;i<32;i++)
    {
        if((m>>i&1)!=(n>>i&1)) cnt++; //右移i位,一位一位比较是否相同
    }
    return cnt;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/948169.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号