标准C++编程量_指针_new_delete_函数.docVIP

  • 3
  • 0
  • 约8.56千字
  • 约 6页
  • 2016-10-12 发布于浙江
  • 举报
标准C编程量_指针_new_delete_函数

const double *p; double *const p1; const double *const p2;有什么区别? const double *p; //*p是个const,意思是不能通过*p修改p指向的对象 比如 double a=0.0; const double *p=a; 那么*p=2.0是非法的 而如果有const double a=0.0;那么必须是 const double* 才可以指向a ,像double*p =a;是非法的 double *const p1; //p1是个const, p1的值不能改变,所以必须在定义p1的时候就初始化它:double *const p1=某; 如果再有p1= 某地址; //这个就行不通 const double *const p2; //p2是个const,*p2也是const ,就是p2 的值不能改变,也不能通过*p2改变p2所指向的对象的值 一道C语言的例题: 在C语言的编译下,由于指针指向的地址,直接向地址修改值,导致值被修改。然而这段程序,在不修改程序代码的情况下,使用C++进行编译,由于C++的编译器做了大量的优化工作,而直接导致值为100. 优化工作为程序看到n的前面使用const做修饰,直接认为n为常量,在接下来使用n的地方,直接使用这个值代替,而不直接再从内存中n的地址处再取一遍n的

文档评论(0)

1亿VIP精品文档

相关文档