指针和引用
指针
每个指针都有相关的类型,要在定义指针时指出
类型 *指针变量;
取地址运算符“&”
指针存放指定类型对象的地址,要获取对象的地址,使用取地址运算符“&”
int ival = 120;
int *pi = &ival;
// pi存放int变量ival的地址
// 或者说pi指向ival
char ch = 'a', *pc = &ch;
// pc指向字符型变量ch
指针解引用运算符“*”
如果指针指向一个对象,则可以通过指针间接访该对象,使用指针解引用运算符“*”
int x = 100, y = 20;
int *pi = &x;
*pi = y;
// 间接操作pi指向的x,即x = y
#include <iostream>
using namespace std;
int main( )
{
int ival=1024;
int *pi=&ival;
cout << " sizeof(pi):" << sizeof(pi) << endl; //指针在内存中所占大小
cout << " sizeof(ival):" << sizeof(ival) << endl; //ival在内存中所占大小
cout << " &pi:" << &pi << endl; //指针在内存中的地址
cout << " pi:" << pi << endl; //指针中存放的内容,即ival的地址
cout << " &ival:" << &ival << endl; //ival的地址
cout << " *pi:" << *pi << endl; //指针所指内存中存放的内容,即ival的值
cout << " ival:" << ival << endl; //ival的值
空指针
// 生成空指针的2种方法
int *p1 = 0;
int *p2 = NULL;
//不能写成下面的样子:
int zero = 0;
int *p4 = zero;
使用指针的注意事项
- 定义指针时,应该对指针进行初始化
- 指针的运算
- 同类型的指针可以进行相等(==)或