c++ 中指针能不能有++操作,就是地址加一?

[复制链接]
查看11 | 回复5 | 2012-11-30 20:50:39 | 显示全部楼层 |阅读模式
对于指针的++,在C++里,默认是对类型进行++int *p = xxxx;p++;等价于 p = p + sizeof(int *) ;sizeof是用来计算大小的。指针的大小一般为4字节。所以p++就是加上4个字节。...
回复

使用道具 举报

千问 | 2012-11-30 20:50:39 | 显示全部楼层
无论是C还是C++,并非所有的指针都可以++或--,用cost声明的常指针就不能++或--;一个数组名也是个指针,但它是常指针,也不能++或--;指向函数的指针、对象的指针一般也不能++或--。你的错误提示大意是“左值指定的是常对象”,估计你是误把对象指针++了……...
回复

使用道具 举报

千问 | 2012-11-30 20:50:39 | 显示全部楼层
当然可以++操作啊,至于地址是否加一,得看指针是什么指针了,如果是一维指针,那就是地址加一,如果是二维或者多维指针,就不是加一了。当然这里加一不是指一个字节,是指指向下一个元素。...
回复

使用道具 举报

千问 | 2012-11-30 20:50:39 | 显示全部楼层
地址未必是加1,如int *p=new int;p++;就是地址加4...
回复

使用道具 举报

千问 | 2012-11-30 20:50:39 | 显示全部楼层
应该要重载为类引用的返回才能作右值...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行