const 的问题?
vc6 有下面一段代码:
void main()
{
const long i=100;
long * ptLng=NULL;
long j=0;
cout<<i<<endl;
ptLng=(long *)&i;
*ptLng=1000;
cout<<*ptLng<<endl;
cout<<i<<endl;
cout<<ptLng<<":"<<&i<<endl;
}
i是const值,ptLng是指向i的指针,通过改变 *ptLng的值,应该可以改变i的值,
这个在内存中可以清楚的看出,但实际上i的值输出的却没有变?请问为什么会这样?
void main()
{
const long i=100;
long * ptLng=NULL;
long j=0;
cout<<i<<endl;
ptLng=(long *)&i;
*ptLng=1000;
cout<<*ptLng<<endl;
cout<<i<<endl;
cout<<ptLng<<":"<<&i<<endl;
}
i是const值,ptLng是指向i的指针,通过改变 *ptLng的值,应该可以改变i的值,
这个在内存中可以清楚的看出,但实际上i的值输出的却没有变?请问为什么会这样?
...全文
相关推荐
面试官竟然问我JavaScript中var、let和const有什么区别这样简单的问题?
2. let let 是 ES6 引入的新特性,主要用于解决 var 的一些问题,特别是变量作用域的问题。
const的作用
#### 二、const变量&const限定的内容**问题:** 下面代码中哪个语句会导致编译错误?
c++中临时变量不能作为非const的引用参数的方法
为什么临时变量不能作为非const引用传递呢?这是因为非const引用被设计为期望在函数内部修改其引用的对象。
老生常谈C++中实参形参的传递问题
如果函数使用的是非引用 const 形参,也是既可以给该它传递 const 实参,也可传递非 const 实参。那么这两者的差别是什么呢?对于后者,函数连实参的局部副本都不可以改变了。
var、let、const区别[源码]
但是,对于const声明的对象类型变量,其属性是可以被修改的。在实际开发中,应当如何选择变量声明方式呢?


