![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++/C指针
文章平均质量分 57
仓Rainy
这个作者很懒,什么都没留下…
展开
-
在堆中删除对象
假如我们要删除在堆中创建的对象,我们可以直接删除指向该对象的指针,这样会自动调用对象的析构函数来销毁该对象同时释放内存。 #include using namespace std;class Human{ public: Human(){cout构造函数执行中......\n";i=999;} ~Human(){cout析构函数执行中....转载 2014-05-20 21:26:16 · 412 阅读 · 0 评论 -
为什么使用指针
很多初学者都会问,既然通过变量名就可以访问数据,为什么还要使用繁琐而又容易出错的指针呢?这是因为在操作大型数据和类时,由于指针可以通过内存地址直接访问数据,从而避免在程序中复制大量的代码,因此指针的效率最高一般说来,指针会有三大用途: 1:处理堆中存放的大型数据。2:快速访问类的成员数据和函数。3:以别名的方式向函数传递参数。原创 2014-05-20 21:17:49 · 472 阅读 · 0 评论 -
指针总结
转载 2014-05-20 22:50:00 · 320 阅读 · 0 评论 -
内存泄露
假如没有删除一个指针就对其重新赋值,如: #include using namespace std;int main(){ int *p=new int; p=new int; return 0;} 这样就会造成内存泄露。 第一行定义了一个指针p并使其指向一块内存空间,第二行又将一块新的内存空间的地址赋给了p。这样第一行转载 2014-05-20 21:23:50 · 380 阅读 · 0 评论 -
在堆中创建对象
我们既然可以在堆中保存变量,那么也就可以保存对象,我们可以将对象保存在堆中,然后通过指针来访问它。 #include using namespace std;int main(){ Human *p; p=new Human; return 0;} 第一行定义了一个Human类的指针p,第二行使用new创建一块内存空间,同时又调用转载 2014-05-20 21:25:21 · 1223 阅读 · 0 评论 -
栈 和 堆
一般来说,程序就是与数据打交道,在执行某一功能的时候,将该功能所需要的数据加载到内存中,然后在执行完毕的时候释放掉该内存。 数据在内存中的存放共分为以下几个形式: 1、栈区(stack)—— 由编译器自动分配并且释放,该区域一般存放函数的参数值、局部变 量的值等。 2、堆区(heap)—— 一般由程序员分配释放,若程序员不释放,程序结束时可能由操作系 统回转载 2014-05-20 21:20:38 · 457 阅读 · 0 评论 -
访问堆中的数据成员
假如我们要访问对象的数据成员和函数,我们使用成员运算符" . "。 #include using namespace std;class Human{ public: Human(){cout构造函数执行中......\n";i=999;} ~Human(){cout析构函数执行中......\n";} int get()转载 2014-05-20 21:27:05 · 400 阅读 · 0 评论 -
C++对称字符串的最大长度
题目:输入一个字符串,输出该字符串中对称的子字符串的最大长度。比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。原创 2014-08-01 17:18:04 · 835 阅读 · 0 评论