zoukankan      html  css  js  c++  java
  • 【C】——const和volatile可以并用吗?

      答案是肯定的,可以一起用。

      因为很多人误解了const的真正含义,很多初学者认为const修饰的就是常量,而常量不会改变,而既然不会改变,那volatile就没有意义。
      但是实际上这正是对const的误读,const其实只是一种限制约定,也就是某个东西X不能由const修饰的变量来修改,但是这个X仍然可以被其他非const修饰的变量来修改,比如
    int x;
    int* p = &x;
    const int* q = &x;
    *p=0; //允许
    *q=0; //错误
      虽然p和q指向同一块内存,但是q的const并不能限制p的写入,也就是说const只是限制了q的写入,这是一种语法约定而已,并不表示q所指向的内存就是一个常量并且绝对不会改变。
      如果能理解这一点,那么const和volatile放一起就并不奇怪了。而且这种用法在不同线程之间用来做一些状态控制也是偶尔有见到的。

  • 相关阅读:
    Problem 3
    Problem 2
    Problem 1
    Python基础 装饰器
    算法——狄克斯特拉算法
    A Knight's Journey POJ 2488
    多校10 1007 CRB and Queries
    多校9 1007 Travelling Salesman Problem
    多校8 1008 Clock
    多校7 1005 The shortest problem
  • 原文地址:https://www.cnblogs.com/ngnetboy/p/3332927.html
Copyright © 2011-2022 走看看