动态数组是啥

动态数组是啥动态数组是什么?什么情况用动态数组?长度可变那么如何定义呢?

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

动态数组是什么?

当小白抱着这个问题去问大佬的时候,80%的回答就是:动态数组就是可以变化长度的数组,就这么简单,没啥难度。

于是小白心中就容易产生一个概念,动态数组就是长度可以变化的数组,长度可以任意变,那什么时候变、怎么变,,,额 不想了,刚问完说懂了的,再问也不合适,下次代码碰到再说吧。。。

70%你会忘记这个问题,25%你会使用增加删除操作更灵活的集合(ArrayList),5%的可能你会再去问动态数组的概念,掌握住它。所以,干脆在第一次查的时候就搞明白这些问题:

1.什么是动态数组

2.动态数组怎么定义

3.动态数组怎么变化的

4.举个例子让我看看数组和动态数组的区别

那么我们一个一个来看一下:

1.什么是动态数组

动态数组是指在声明时没有确定数组大小的数组,即忽略圆括号中的x下标;当要用它时,可随时用ReDim语句重新指出数组的大小。使用动态数组的优点是可以根据用户需要,有效利用存储空间。

2.创建动态数组  &&  3.动态数组怎么变化的


int main(){
    int arrLen;  // 数组长度
    int *array;  // 数组指针
    int i;  // 数组下标
    printf("输入数组长度:");
    scanf("%d", &arrLen);
    
    // 动态分配内存空间,如果失败就退出程序
    array = (int*)malloc( arrLen*sizeof(int) );
    if(!array){
        printf("创建数组失败!\n");
        exit(1); 
    }
    // 向内存中写入数据
    for(i=0; i<arrLen; i++){
        array[i] = i+1;
    }
    
    // 循环输出数组元素
    for(i=0; i<arrLen; i++){
        printf("%d  ", array[i]);
    }
    
    printf("\n");
    free(array); 
    
    system("pause");
    return 0;
}

Jetbrains全家桶1年46,售后保障稳定

4.举个栗子

一个最简单最简单的小程序,输入几个数,程序找出其中的最大值返回给用户。

理一下思路,将输入的数字存入一个数组,循环遍历数组,比较选出最大值max,循环结束后返回max值,但现在的问题是数组建多大合适?用户要输入多少个数,不知道,定义个10?万一输入11个呢,那定义个99999肯定够了吧,够是够了 但是要浪费多大空间?

那么我们怎么建数组呢,动态数组:·

int m;
int *array=new int [m];

用户输入多少个,我建多大。

以上

太阳尚远 但必有太阳

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/234559.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • eclipse安装教程详细教程_eclipse中文版教程详细教程

    eclipse安装教程详细教程_eclipse中文版教程详细教程参考与: https://www.cnblogs.com/ForestDeer/p/6647402.html第一步:下载eclipse,并安装。下载链接:http://www.eclip

    2022年8月2日
    3
  • 1310-全国-中国古代文学史(二)「建议收藏」

    1310-全国-中国古代文学史(二)「建议收藏」1310-全国-中国古代文学史(二)总分:100一、单选题(共30题,共30分)1、苏舜钦的诗歌风格是()(1分)A:豪犷雄放B:平淡瘦劲C:生新瘦硬D:​沉博绝丽2、我国最早的话本小说总集是嘉靖年间洪楩编辑刊刻的《六十家小说》,又称为()(1分)A:《古今小说》B:《清平山堂话本》C:《今古奇观》D:《型世言》3、徐渭《四声猿》中最杰出的一部作品是()(1分)A:《狂鼓史渔阳三弄》B:《玉禅师翠乡一梦》C:《雌木兰替父从军》D:《女状元辞凰得凤》4、被称为“昆曲之

    2022年5月18日
    50
  • class.getclassloader()_javaassist

    class.getclassloader()_javaassist全屏java.lang.Class.getClassLoader()方法返回的类加载器的类。一些实现可能使用null表示引导类加载器。如果这个类是由引导类加载器加载的方法在这样的实现将返回null。声明以下是java.lang.Class.getClassLoader()方法的声明publicClassLoadergetClassLoader()参数NA返回值此方法返回加载此对象所表示的类或接…

    2022年5月3日
    61
  • 【论文精读】Parallax-Tolerant Image Stitching Based on Robust Elastic Warping

    【论文精读】Parallax-Tolerant Image Stitching Based on Robust Elastic Warping基于高鲁棒性的弹性扭曲视差容忍图像拼接算法

    2025年5月23日
    1
  • vuecli关闭eslint_vue plugin

    vuecli关闭eslint_vue pluginvue关闭eslint,vue项目关闭eslint提示,vue项目取消eslint

    2022年10月8日
    0
  • 遗传算法_aforge遗传算法

    遗传算法_aforge遗传算法一、遗传算法简介:遗传算法是进化算法的一部分,是一种通过模拟自然进化过程搜索最优解的方法。二、遗传算法思想:遗传算法组成:1.编码2.适应度函数3.遗传算子:选择、交叉、变异4.运行参数借鉴生物进化论,遗传算法将要解决的问题模拟成一个生物进化的过程,通过复制、交叉、突变等操作产生下一代的解,并逐步淘汰掉适应度函数值低的解,增加适应度函数值高的解。这样进化N代后就很有可能会进化出适应度函数值很高的个体。2.1.编码将问题的解编码称字符串形式才能使用遗传算法。最简单的一种编码是二进制编码,即

    2022年9月3日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号