笔记 C++输入n个数的方法 动态内存分配

C++程序:输入n个数,将这些数从大到小排列输出

#include<iostream>
#include<window.h>
using namespace std;
int main()
{
    //指定数组长度
    int n;
    cin>>n;
    //动态分配内存
    int* p=new int[n];
    //顺序输入
    for(int i=0;i<n;i++)
        cin>>p[i]; 
    //冒泡排序
    int t=0;
    for(int i=1;i<n;i++)
        for(int j=0;j<i;j++)
        {
            if(p[j]<p[j+1])
                {
                    t=p[j];p[j]=p[j+1];p[j+1]=t;
                }
        }
     //顺序输出
    for(int i=0;i<n;i++)
        cout<<p[i]; 
    return 0;
}

动态分配内存
int* p=new int[n];

原因:
动态分配 n 个i连续nt型的空间。
可以理解为 申请一个 长度为n 数组名为p的 int型数组。
只是和普通数组相比他的长度可以在运行时指定,增加编程的灵活性,减少空间浪费。

不然就只能分配足够大的,例如初学时int p[80] 。


为什么要使用动态内存分配来实例化一个

1.可以动态的申请空间,以便动态确定对象所需要的内存;
2.便于储存大型对象,通常情况下栈区的大小容不下过于庞大的对象;
3.传递指针比传递整个对象更方便高效;

举几个生动形象的例子解释以上三条原因:

  1. 每个人都要吃盐,盐不够了再去买显然比把这辈子要吃的盐一次性买下来要明智;
  2. 如果你是卖盐的,储存了很多盐,你只需要建一个仓库把盐放进去,然后自己记住仓库地址即可,而不需要把盐全部放在自己的家中;
  3. 如果要去很远的地方谈卖盐的生意,只需要选一些有代表性的信息(地址)给对方就可以了,不需要把整个仓库搬过去给对方看。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值