首页编程delete 电脑键盘上的Delete是什么意思

delete 电脑键盘上的Delete是什么意思

编程之家2023-11-01137次浏览

亲爱的读者们,你是否对delete和电脑键盘上的Delete是什么意思的关系感到好奇?在本文中,我将深入探讨它们之间的联系,让你对此有更深刻的理解。

delete 电脑键盘上的Delete是什么意思

delete与 delete []区别

delete只会调用一次析构函数,而delete[]会调用每一个成员的析构函数。在More Effective C++中有更为详细的解释:“当delete操作符用于数组时,它为每个数组元素调用析构函数,然后调用operator delete来释放内存。”delete与new配套,delete []与new []配套

MemTest*mTest1=new MemTest[10];

MemTest*mTest2=new MemTest;

Int*pInt1=new int [10];

Int*pInt2=new int;

delete[]pInt1;//-1-

delete 电脑键盘上的Delete是什么意思

delete[]pInt2;//-2-

delete[]mTest1;//-3-

delete[]mTest2;//-4-

在-4-处报错。

这就说明:对于内建简单数据类型,delete和delete[]功能是相同的。对于自定义的复杂数据类型,delete和delete[]不能互用。delete[]删除一个数组,delete删除一个指针。简单来说,用new分配的内存用delete删除;用new[]分配的内存用delete[]删除。delete[]会调用数组元素的析构函数。内部数据类型没有析构函数,所以问题不大。如果你在用delete时没用括号,delete就会认为指向的是单个对象,否则,它就会认为指向的是一个数组。

delete 和 delete 的区别

当调用delete的时候,系统会自动调用已分配的对象的析构函数。当我们用new []分配的对象是基本数据类型时,用delete和delete []没有区别。但是,当分配的对象是自定义对象时,二者不能通用。一般来说使用new分配的对象,用delete来释放。用new[]分配的内存用delete []来逐个释放。

delete 电脑键盘上的Delete是什么意思

delete与delete[]需要注意的地方

1:首先来说一个大家容易忽略的问题:定义:int*p=new int;

这个大家一看就知道,在内存中分配了一个int类型的空间,没错。但是我想说的是,操作系统在堆在分配了一个int类型空间给p指向的空间,但是p本身的值是在栈上,我觉的明白这个很重要。比如,你需要处理一个海量数据,这个数据需要用二维数组来表示,你如果这样定义int*ptr[MaxNum],然后再循环为每个ptr[0~MaxNum-1]分配空间,这个时候容易隐含一个错误,我们知道内存中栈的大小大约就2M左右,而堆很大,几乎没有限制,当你的MaxNum很大的时候,就会导致内存溢出,因为ptr这个值的本身是在栈上的,而栈的大小就2M左右,而你又有这么多个地址要存放,所以会出错。解决办法有二个:一:用一维数据代替二维数组;二:定义一个二维指针;然后再动态分配。

2:delete与delete[]执行遇到的问题:

① int*p=new int[100]; int num[100]; p=num; delete []p;

大家能看出这段代码有什么问题吗?如果你还没看出,那么你对指针及内存的动态分配与释放还需要再学习。

错误是发生在delete []p,为什么呢?按理说用new[]申请,用delete[]释放,应该没有问题啊。但是错误发生的原因是因为delete[]p释放的是数组num[100]的空间,而我们申请的空间根本就没有释放,为什么会出现这种情况呢?因为此时的指针已指向了num数组的首地址,而num[100]的空间会由系统自动释放,而我们现在强行释放,所以会发生错误。

②int*p=new int[3];*p=1;

p++;//p的指向改变了,指向了下一空间*p=2; delete []p;

大家能发现这段代码有什么问题吗?

错误还是发生在delete[]p,c/c++规定,当删除一个指针时,这个指针应指向其首地址,而上面的代码中p值已经发生了变化,所以会发生错误,如何避免呢?可以备份一份;如 int* pbak=p;在释放的时候,用delete[]pbak即可。

③ int* p= new int[10]; int*pp=p; delete []p; delete []pp;

这段代码哪里又发生了错误呢?

我们要知道,p向操作系统申请了10个int类型的空间,而pp只是指向这个空间,操作系统并没有为其再分配10个int类型的空间,所以当你用delete[]p释放这个空间后,再用delete[]pp释放就会发生错误。其实不管用哪个释放,只要释放一次就行了。

④ int a=100; itn*p=&a; delete p;

看到了这里,如果你还不能看出这段代码的错误,那你前面的白看了,说明你还是没有真正懂得啊!错误还是发生在delete p,什么原因?因为p并没有通过new获得内存空间,只是指向某个变量,而delete p是强行释放a的空间,肯定发生错误啦。

键盘上的delete是什么意思

意思是删除键。在编辑环境中选择内容后,按下此键,所选内容将消失。当选择一个文件,按下它将移动到回收站。

Del是Delete的缩写,但键盘上有一个Delete键和一个Del键。主键盘右侧的删除键,单独按下时只有一个功能:删除光标后的字符。

del键,在小键盘上。有两种情况:

1、当NumLock键未按下时,其功能相当于按下Delete键。

2、按下数字锁定键后,会出现一个点(纯英语)。

扩展资料:

键盘上其他键位的意思:

1、Alt键也被称为交替换档键、更改键、替换键,因为英语单词Alternate的缩写,最常与其他键组合使用。

2、ctrl键位于键盘的左下角和右下角,发音为Control键,中文意思是控制。被广泛地用作计算机键盘上的普通按键,在计算机的基础上被称为控制键。

3、Shift键是键盘上的一个上移键。也可以用来切换中文和英文,每一边一个Shift键。Shift键具有输入法切换、半角和全角快速切换、选择连续文件、直接删除文件等功能。

电脑键盘上的Delete是什么意思

意思是删除的意思。编辑环境下选择了内容之后,按下这个键,选择的内容将会消失;当你选中一个文件后,按下它会将文件移动到回收站中。

“del”是“Delete”的缩写,但在键盘上,却有一个Delete键和del键。Delete键,在主键盘的右边,单独按它时,它只有一个功能:删除光标后的字符;

del键,在小键盘上。有两种情况:

一、当未按下Num Lock键时,它的功能等同于按Delete键;

二、当按下Num Lock键后,它出小圆点(纯英文状态时)。

扩展资料:

键盘上其他键位的意思、:

1、"Alt”键又名交替换档键、更改键、替换键,因为它是英语单词“Alternate”(交换、替换)的缩写,大多数情况下与其它键组合使用。

2、ctrl键位于键盘左下角和右下角,发音为control键,中文意思为"控制",用途广泛,是计算机键盘上的一个常用的键,在计算机基础中称为“控制键”。

3、Shift键是键盘中的一个上档转换键,也可用于中英文转换,左右各有1个shift键。shift键具有输入法切换、快速切换半角和全角、选择连续文件、直接删除文件等功能。

感谢您的阅读!希望本文对解决您关于delete和电脑键盘上的Delete是什么意思的问题有所帮助。如果您还有其他疑问,欢迎随时向我们提问。

菜鸟建站基地 浙江菜鸟如何建站阿里关键词 阿里巴巴关键词是什么