zoukankan      html  css  js  c++  java
  • 练习2.30、2.31、2.32

    2.30:对于下面的这些语句,请说明对象被声明成了顶层const还是底层const?

    const int v2=0;  int v1=v2;

    int *p1=&v1,&r1=v1;

    const int *p2=&v2,*const p3=&i,&r2=v2;

    Ans:v2是顶层const对象,p2是底层const对象,p3是顶层const也是底层const,r2是常量引用是底层const对象

    2.31:假设已有上一个练习中所做的那些声明,则下面的哪些语句时合法的?请说明顶层const和底层const在每个例子中有何体现。

    r1=v2;  //合法,r1是一个普通的引用,v2是一个顶层const对象,拷贝过程中不影响。。

    p1=p2;  p2=p1;  //前者p2是底层const对象,而p1是普通指针,用底层const对象p2去修改普通指针p1,显然是不合法的。后者p2是底层const对象,不是顶层const对象,因而可以修改p2指针本身的值。

    p1=p3;  p2=p3;  //前者不合法,p3是顶层const对象也是底层const对象,而p1是普通指针,因此不合法。后者合法,p3是一个顶层const指针也是底层const指针,而p2是一个底层const,故合法。

     2.32:下面代码是否合法?如果非法,请设法将其修改正确。

    int null=0,*p=null;

    Ans:非法。应修改为:int null=0,*p=&null;或者可以改成:int null =0,*p=nullptr;

  • 相关阅读:
    虚拟机安装配置
    大整数加法 面试题
    结构体
    操作文件
    Gcd HDU
    牛客练习赛47 A DongDong破密码 (异或性质,递推)
    ACM常用之 异或运算的性质。
    Wannafly挑战赛22 C 多项式(大数,多项式极限)
    大数全能模板
    Wannafly挑战赛22 D 整数序列 (线段树维护三角函数值)
  • 原文地址:https://www.cnblogs.com/Dark-King/p/9365466.html
Copyright © 2011-2022 走看看