pointer 指针常量与常量指针

不管是指针常量还是常量指针其本质都是指针,所以他们需要赋值的是一个地址。

很多时候利用指针进行输出的时候 总是输出指针的地址了,经常性的忘记需要输出指针地址中的内容。

const int *还是int const * 都是指针常量 ,那常量指针怎么写法?常量指针是在int 与 const之间写* 即:int *const

举例如下:

#include <iostream>using namespace std;int main(int argc, const char * argv[]) {    int b=3;    int c=4;    int e=40;    int f=80;    //指针常量:指的是一个指针指向一个常量    const int *q =&b;    cout<<*q<<endl;    q=&c;    cout<<*q<<endl;    //*q=5;//可以改变指针的方向,但是指向的地址的值无法修改。    //常量指针----本质是个指针,但是这个指针是常量的,意味着你是不可以随便的就可以更改指针的指向的。    int *const p=&e;    cout<<*p<<endl; //输出指针指的内容    //换个指向,让他指向f    //p=&f;   // cout<<*p<<endl;        //给他换个值    *p=90; //这个语句是错误的 也就是说也是指针常量    cout<<*p<<endl;    return 0;}

Tips

  • 除此之外需要警惕指向常量的常量指针。const int *const p = &q;既不能改变指向,也不能改变指向内存中的值。
  • 如果函数的形参中有引用,那么在调用函数传参的时候注意与指针形参的区别。

更多相关文章

  1. C中如何声明指向函数的指针?
  2. c++ 图解层序遍历和逐层打印智能指针建造的二叉树
  3. c语言常量定义规则
  4. c语言中合法的字符常量如何定义?
  5. c语言常量的正确表示方法有哪些
  6. c语言字符常量的合法表示形式是什么
  7. 指针和引用的不同点与相同点分别是什么
  8. C++ 引用和指针区别
  9. 数组指针的用法有哪些?

随机推荐

  1. redis之Sentinel
  2. Java线程之线程的交互
  3. clone 方法是如何工作的
  4. redis之发布与订阅
  5. Java线程之线程的调度-休眠
  6. Java 的版本历史与特性
  7. Java线程之线程的调度-优先级
  8. Java 中关于 String 类型的 10 个问题
  9. 使用 ThreadLocal 变量的时机和方法
  10. JDK1.8 ConcurrentHashMap的size