语句"inta;"定义的如果有变量定义intaa存储在内存的什么存储区?

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

         一个类有且仅有一个析构函数。如果定义类时没写析构函数则编译器生成默认析構函数。如果定义了析构函数则编译器不生成默认析构函数。
        析构函数在对象消亡时即自动被调用可以定义析构函数在对象消亡前做善后工作。例如对象如果在生存期间用 new 运算符动态分配了内存,则在各处写 delete 语句以确保程序的每条执行路径都能释放这片内存是比较麻煩的事情有了析构函数,只要在析构函数中调用 delete 语句就能确保对象运行中用 new 运算符分配的空间在对象消亡时被释放。例如下面的程序:

 


接下来的两次析构函数调用发生在第 16 行delete 语句释放了第 15 行动态分配的数组,那个数组中有两个 CDemo 对象消亡最后两次析构函数调用发生在 main 函数结束时,因第 11 行的局部数组如果有变量定义inta array 中的两个元素消亡而引发
 

 //方法结束时,由系统自动调用析构函数释放对象
 

为了简单明了的理解直接上代碼

定义涉及两个运算符:“”(间接引用)、“[]”(下标),“[]”的优先级别大于“”的优先级别

首先看int p[4],“[]”的优先级别高所以它艏先是个大小为4的数组,即p[4];剩下的“int ”作为补充说明即说明该数组的每一个元素为指向一个整型类型的指针。int *p[4]的存储结构如下:(存储方格横向排列或竖向排列没区别只要按内存地址顺序排列就行,此处只是为画图方便)
再看int (*q)[4]它首先是个指针,即*q剩下的“int [4]”作为补充說明,即说明指针q指向一个长度为4的数组int (*q)[4]的存储结构如下:

我要回帖

更多关于 如果有变量定义inta 的文章

 

随机推荐