书上这一点是不是错了
c++允许动态创建const对象
const int *pci = new const int(1024);
我上网查了查 貌似应该是
const int *pci = new int(1024)
反正问问题不要钱,上来问一下~
[解决办法]
刚试了下这种写法 const int *pci = new const int(1024);
在VC6.0下编译错误,但是在gcc下可以编译可以通过.
[解决办法]
首先要说的是这两种都是正确的,我在VS2010环境下试过了。
const int *pci;这么一个指针是可以接受int变量地址的,当然也是可以接受const int变量地址的。
因为编译器是无法得知某存储区域存储的是否为常量的,所以对于pci这么一个指针来说他不管指向的是不是一个整型常量,编译器都认为他指向的是一个常量,这么一来就不允许通过pci指针来修改其所指向的空间的值了。
要多说的是const int变量地址只能赋给一个const int *变量。而int变量随意