| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 600 人关注过本帖
标题:一个C++ 指针和new的问题
只看楼主 加入收藏
暂未命名
Rank: 2
等 级:论坛游民
帖 子:20
专家分:23
注 册:2013-6-1
结帖率:87.5%
收藏
已结贴  问题点数:20 回复次数:4 
一个C++ 指针和new的问题
#include <iostream>
using namespace std;

int main()
{
    int *p,*q;
    p = new int[10000];
    q = &p[0];
    for(int i = 0; i<10000; i++)
        *(q++) = 0;
    q = &p[1];
    *q = 178;
    p = new int[10000];
    cout<<p[1]<<endl;
}

p是一个指针为什么可以用p[1]来访问new开辟地址空间,不应该是只能用p++的吗?
还有p[1]是什么情况?指针还可以这样用?原来还真没见过...

基础不好还请轻喷...
搜索更多相关主题的帖子: include 
2014-01-11 16:15
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:10 
p是一个指针为什么可以用p[1]来访问new开辟地址空间?你是指q = &p[1]; 这个吗?这个并没有开辟空间,只是把q指向了p+1的那块内存而已。好好补下基础

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2014-01-11 16:19
暂未命名
Rank: 2
等 级:论坛游民
帖 子:20
专家分:23
注 册:2013-6-1
收藏
得分:0 
回复 2楼 yuccn
那上面的cout<<p[1]是怎么回事?
p[1]等于p+1吗?

[ 本帖最后由 暂未命名 于 2014-1-11 20:05 编辑 ]
2014-01-11 16:35
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:10 
p[i] 和 *(p+i)是绝对相等的 p[i]就这么定义的

多说一句 见到 i[p] 也别惊慌 因为根据定义它和p[i]是一样的。。。


2014-01-14 12:34
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
建议楼主多看书。。。
2014-01-14 12:34
快速回复:一个C++ 指针和new的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019658 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved