C++ 指针和动态数组

来源:互联网 发布:开关柜设计软件 编辑:程序博客网 时间:2024/06/06 04:40

1. 自动对象:编写程序时声明的对象,在编译时分配内存空间,当程序块运行结束之后会自动销毁

2. 动态对象:在执行期间创建并分配内存空间,需要手动销毁, 即指针

                          Item *Item_ptr 自右向左读取,即指向一个Item对象的指针

3. 创建动态对象

                         Item *p; p = new Item; new + type将返回一个type动态对象的地址,该对象保存在自由存储区

                         int *p = newint;

                         int *q;     q =new int;

       C++中,内存分为5个区:堆,栈,自由存储区,全局/静态存储区,常量存储区

       其中,自由存储区是由malloc等分配的内存块,和堆类似,不能自动释放,需要手动销毁。

 

4. 删除动态对象

                        delete p;      

5. 动态分配数组:声明一个指向Item类型的指针,将动态数组通过new操作符赋值给该指针,可以创建动态大小的指针

                        int size, *dynamic_array;

                        cout<< “Enter the size of the dynamic array:”<<flush;

                        cin>> size;

                       dynamic_array = new int[size];

                       for(int I = 0; I < size; I ++)dynamic_array[i] =I;

6. 指针运算:p+I  等于 p+n*i  (nItem类型所占的字节数,i为偏移个数)

 

7. 指针赋值p = q*p = *q;

 

 

8. 自动对象的地址:int a;&a为对象a的地址,是一个int *类型的值;可以将&a的值赋值给int类型的指针

9. 指针对象数据成员的访问 (*p).data = p->data;

原创粉丝点击