C++指出哪句错了,改正并说明原因

[复制链接]
查看11 | 回复3 | 2008-12-10 11:01:01 | 显示全部楼层 |阅读模式
#include
main ()
{
int x=5, y=6;
const int*p= &x;
*p=y;
cout<<*p<<endl;
}
自学c++请高手指点

回复

使用道具 举报

千问 | 2008-12-10 11:01:01 | 显示全部楼层
const int*p= &x这句,你已经限制了指针p所指的内容为const,即不能改变,所以在下一句:*p=y ,中你要更改指针P所指的内容,编译器当然会报错,如想改正有三种方法:1.去掉const int*p= &x中的const,即int*p= &x;2.将y的地址赋给P而不是y的值,即 p = &y;3.移动const,即 int *const p= &x;,这样你指定了指针p的地址为const,赋给p一个地址初值,这样在整个程序中p所指的地址是不可改变的,但它所指的内容可以更改...
回复

使用道具 举报

千问 | 2008-12-10 11:01:01 | 显示全部楼层
前置const后定义的变量(p)在后面使用的话不能修改变量(p)的值...
回复

使用道具 举报

千问 | 2008-12-10 11:01:01 | 显示全部楼层
楼上正解!...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行