什么是指针: 指针是指向某数据类型的地址类型,占用4个字节, 定义一个指针时应指出该指针是什么数据类型。 如定义一个整形指针: int * p; 可见定义指针变量是在变量前加一个指针标示符* 。 指针类型也可以为void, 即为无类型,当指针类型不确定时使用。该类指针可转换为其它任何类型指针,无需强制转换。指针的就应,通过在指针p前加* 可提取指针指向的变量的值。 如cout<<*p; 输出p指向的变量的值。
指针的作用:
1. 当有较多同类型变量时,使用指针变量,使程序简单明了,可读性好。
2. 作为函数形参, 当参数值占内存较大时,可使用指针或引用,不必将参数压栈。(函数参数三种传递方式: 值传递,指针传递,引用传递)
3. 链表,链式结构中需要指针寻址连接各数据元素。
4. 申请内存块时,存放内存首地址。
什么是引用: 引用是某一变量的别名,操作引用跟操作变量完全一样。定义一个引用必须初始化,标示符为&。 如定义一个整形引用:
int a=0;
int & b=a;
引用的作用:
1. 作为函数形参, 不产生参数的副本。传递效率高,常与const 一起,保证参数的安全性。
2. 使用引用就像使用原变量一样,可读性好。
3. 使用引用作为返回值,不产生返回值的副本。
4. 由于引用不能再次赋值,不会引起像指针使用不当带来的地址错误。
指针与引用的区别:
1. 指针可以不被初始化, 引用本身在定义时初始化。
2. 引用的可读性比指针好。
3. 指针可以被改变,指向不同的对象,灵活性强,处理功能强大, 引用不能被改变,安全性高。