zoukankan      html  css  js  c++  java
  • 【转】动态数组

    数组到底应该有多大才合适,有时可能不得而知。所以希望能够在运行时具有改变数组大小的能力。

    动态数组就可以在任何时候改变大小。

    通俗的说静态数组就是在定义数组的时候,由操作系统分配的空间,比如
    int a[10];
    这就是在定义时由系统给你分配了10个int类型的空间,这个空间是可以初始化的,比如
    int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    那么在这个定义之后,系统会首先分配10个int类型的存储空间,然后把大括号里面的数字分别的,按顺序放到这10个空间里。你所做的只是写这么一句,而数组赋值的操作就由系统完成了。当然,初始化与否看你的需求,初始化不是强制性操作,想初始化就初始化,不想也没问题,还是上面的例子继续:
    int a[10];
    这里定义了,但是没初始化,这没有任何问题,以后你可以自己往里面赋值,比如
    a[1] = 8;
    a[5] = 3;
    或者
    for(int i = 0; i < 10; i++)
        a[i] = i;
    等等

    对于动态数组,不能被初始化,因为动态数组在定义时只是个指针,比如
    int *a;
    这里变量a只是个指向int类型的指针,而不是数组。动态分配有10个int类型元素的数组,如下:
    a = (int) malloc(10*sizeof(int));
    很明显,指针a在定义的时候不能被初始化,比如这样写就是错误的:
    int *a = {1,2,3,4,5,6,7,8,9,10}; /* 错误! */
    因为a是只有4个字节的指针,没有可用的存储空间给需要初始化的变量。

  • 相关阅读:
    jQuery 语法
    jQuery 简介
    把数据存储到 XML 文件
    XML 注意事项
    XML DOM (Document Object Model) 定义了访问和操作 XML 文档的标准方法。
    通过 PHP 生成 XML
    XML 命名空间(XML Namespaces)
    XML to HTML
    XMLHttpRequest 对象
    使用 XSLT 显示 XML
  • 原文地址:https://www.cnblogs.com/whyaiw/p/3013182.html
Copyright © 2011-2022 走看看