1. 解引用操作
- 检查下面代码的问题:
swap( int* p1,int* p2 )
{
int *p;
*p = *p1;
*p1 = *p2;
*p2 = *p;
}
问题:没有初始化指针p,不能对其进行解引用操作。
解引用操作仅适用于那些确实指向了某个对象的有效指针 --《C++ Primer》
改正:
swap( int* p1,int* p2 )
{
int p;
p = *p1;
*p1 = *p2;
*p2 = p;
}
2. 指针和const
- 检查下面代码的问题:
const double pi = 3.14;
double *ptr = &pi
问题:不是指向常量的指针(普通指针)不能指向一个常量
改正:
const double pi = 3