C/C++知识点整理(1)

来源:互联网 发布:pycharm tensorflow 编辑:程序博客网 时间:2024/05/21 22:57

1.指针与引用:

指针初始化后,可以指向其他变量。

声明一个引用,如果不是作为函数的参数或返回值,必须初始化,明确引用是哪个变量的别名,引用一旦成为某个变量的别名后,在程序运行过程中无法更改这种指代关系。

2.下面哪种情况下,B不能隐式转换为A?

A . class B:public A{}
B . class A:public B{}
C . class B{operator A();}
D . class A{A(const B&);}

正确答案: B

派生类可以隐式转换为基类,基类不能隐式转换为派生类,因为,向上级类型转换,部分元素可自动丢弃,向下级转是显示,因为不知道该添加什么元素。
拷贝构造函数可以进行隐式类型转换,operator除了表示重载外也表示隐式类型装换。

3.在x86的机器上,int a=0xabcd1234 char b=((char*)&a)[0]请问b是多少?

A . 0xa
B . 0x4
C . 0xab
D . 0x34

正确答案: D

x86是小端存储,即高位存储在高地址,低位存储在低地址。

int main(){    int a = 0xabcd1234;    char b = ((char*)&a)[0];    printf("%c",b);    return 0;}

ab是高位,34是低位。
答案为0x34,这个应该是ascll码,输出是4,输出的是ascll所表示的东西4,int 4个字节,char 1个字节。
查看内存:
这里写图片描述

0 0