C ++中的指针和动态分配数组错误

问题描述 投票:0回答:2

我正在获得有关指针的介绍,但我不理解以下代码。

int main(){
        int *p;
        p=new int[5];
        cout << p <<endl;  // line 4
        *p=3;
        p=p+1;
        cout <<p <<endl;  // line 7
        *p=7;
        cout << p[0] <<endl;
    }

第4行和第7行分别将内存位置打印为0xd91730和0xd91734,据我所知。但是,为什么最后一行`(p [0])在屏幕上打印7。如第5行中所述,不是p [0] = 3吗?我不理解这个概念。谁能帮忙吗?谢谢。

c++ arrays pointers new-operator
2个回答
1
投票
实际上是这样:

0
投票
处理指针时,方括号表示法只是解引用指针的一种方法。
© www.soinside.com 2019 - 2024. All rights reserved.