详细分析C++指针的操作和运算

C++指针的操作和运算包括:

1. 定义指针

int* ptr;     // 定义整形指针
char* p;      // 定义字符指针
double* pd;   // 定义双精度浮点数指针

2. 初始化指针

int var = 10;
int* ptr = &var;     // 指向var的指针
double d = 5.5;
double* pd = &d;     // 指向d的指针

3. 空指针

int* ptr = nullptr;  // C++11中的空指针写法
int* ptr = 0;        // 早期的空指针写法,等价于nullptr

4. 解引用指针*

int var = 10;  
int* ptr = &var;
cout << *ptr;   // 10,解引用访问var的值

5. 指针加法和减法

int arr[5] = {1, 2, 3, 4, 5};
int* ptr = arr;    
cout << *(ptr+2);  // 3,ptr加2后指向第三个元素
cout << ptr+3;     // ptr加3后指向第四个元素的地址

6. 指针比较

int var1 = 10;
int var2 = 20;
int* ptr1 = &var1;
int* ptr2 = &var2;
if (ptr1 > ptr2) { ... }   // 指针的值较大,指向的内存地址较大
if (ptr1 == ptr2) { ... }  // 比较指针的值是否相等 

7.  const指针和指向const的指针

int var = 10;
const int* ptr = &var;    // 指向const int的指针,可以变化ptr,但不能通过ptr修改var
int const* ptr = &var;    // 等价写法

int var = 10;       
int* const ptr = &var;  // const指针,ptr不能变化,但可以通过ptr修改var的值

8. 野指针

int* ptr;     // 未初始化指针,是野指针
*ptr = 10;    // 非法,会导致未定义行为

以上就是C++指针的操作和运算的详细分析。

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发

请登录后发表评论