面试笔记7(指针和引用)

来源:互联网 发布:mac vi编辑器保存退出 编辑:程序博客网 时间:2024/06/05 20:03

1.若指针保存0值,表明它不指向任何对象。未初始化的指针是无效的,知道该指针赋值后,才可以使用。

2.单目运算符 *比++的优先级高。

3.typedef 说明一种新类型名,来替代已有类型名。在编译时处理,有类型检查。

typedef  string *pstring

const  pstring  cstr;

const修改的是psting类型,这个类型是一个指针类型,所以修饰的是一个指针,所以cstr是一个const指针。这句话是定义cstr是一个指向string类型的const指针。

注意可以变成  const(string *)cstr;   cosnt修饰的是string *类型的变量,cstr是常量

  和cosnt  string  *cstr             cosnt修饰的是string类型  *cstr是常量。

4.void * 的指针类型,它可以保存任何类型对象的地址。但不允许使用void*指针操作它所指的对象。

5.函数指针    *p   注意两边的括号是必须要加上 (*p)

6.可以使用typedef简化函数指针的定义。

7.在引用函数名但又没有调用该函数时,函数名被将自动解释为指向函数的指针。

函数指针只能通过同类型的函数或函数指针或0值常量表达式进行初始化或赋值。

8.函数的形参可以是指向函数的指针。

9.函数可以返回指向函数指针。

阅读函数指针声明的最佳方法是从声明的名字开始由里向外解释。

10.c++语言允许使用函数指针指向重载的函数。

11.c++中规定一旦定义了引用,就必须把它跟一个变量绑定起来,并且不能修改这个绑定。

引用不能为空,当引用被创建时,它必须被初始化。而指针可以为空,可以在任何使用的时候初始化。

不能有null引用。

sizeof (引用)是所指向变量的大小。sizefo(指针)是指针本身的大小。

如果返回动态分配的对象和内存,必须使用指针,引用可能引起内存泄露。

12.cosnt引用是指向const对象的引用,当引用的对象时const对象时,引用也必须是const的 。

13,对于const类型的成员变量和引用类型的成员变量,都必须在构造函数初始化列表中进行初始化。

凡是有引用类型的数据成员的类,必须定义构造函数。

14.public派生对象可以初始化基类类型的引用。数组可以有引用,但没有引用数组。

15.野指针是指向不可用内存的指针。任何指针变量在创建时,不会自动成为NULL指针,其默认值是随机的,此时的指针就是野指针。

16.注意指针cpp++   这个会改变cpp的指向。

                     和cpp[-2]   不一样,这个不改变cpp的指向。





0 0
原创粉丝点击