【C++】指针常量,常量指针

    科技2024-03-18  99

    1.前言

    最近静下心来认真学习起了C++,发现了很多以前都没有注意到的细节,本文主要记录一下我对常量指针、指针常量的理解。

    2.指针常量

    // 指针常量,const放在*后面,指针的指向不可以改,但是指向的内存存放的值是可以改的 int * const p2 = &a; cout << "p2 pointed value is " << *p2 <<endl; *p2 = 100; // 指针常量指向的内存存放的值可以修改,即a = 100 p2 = &b; // 指针常量的指向不可修改,报错p

    3.常量指针

    // 常量指针:指针的指向可以改,但是所指的内存存放的数据不可修改 const int *p1 = &a; cout << "p1 value is " << p1 << endl; *p1 = 20; // 常量指针所指的内存存放的数据不可修改,会报错 p1 = &b; // 修改常量指针的指向是可以的

    4.究极常量

    // const即修饰指针,又修饰常量,指针的指向和指向的内存存放的值都不可改 const int * const p3 = &a; *p3 = 100; p3 = &b; // 都会报错

    5.总结

    弄清楚常量指针、指针常量的关系非常简单,直接看const后面接的是什么即可。如:const int *,则是定义了一个常量指针,和const int类似,这个时候,常量指针是不能修改所指向的内存存放的数值大小,但是因为指针本身没有被const,所以可以任意修改指针指向的内存。而int * const则是将指针给const了,指针的基本功能:指向内存,就被设为了const,即不能修改指针所指向的内存,但是可以修改该内存存放的数值。

    Processed: 0.008, SQL: 8