zoukankan      html  css  js  c++  java
  • C++基础学习(五)之数组

    一维数组

    1 声明数组

    type arrayName[arraySize];

    例如: double a[10];

    2 数组初始化

    double a[5] = { 1, 2, 3, 4, 5 }  //()内的元素个数要小于[]内的数字
        //或者
    double a[] = { 1, 2, 3, 4, 5 }
        //或者
    double a[5];
    a[4] = 5;  //在此之前需要声明

    多维数组

    type arrayName[arraySize1][arraySize2]...[arraySizeN];

    例如 double b[5][5][9];

    二维数组

    int b[3][4] = {
        { 1, 2, 3, 4 },
        { 5, 6, 7, 8 },
        { 9, 10, 11, 12 }
    };
        //或者
    int b[3][4] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };

    数组的应用

    1 指向数组的指针

    以数组声明 double c[5]; 为例,数组名是指向数组中第一个元素的常量指针,即 c 是指向 &c[0] 的指针

    double *p;
    double c[5];
    p = c;  //将c的第一个元素地址赋值给p

    *(c + 3) 指向 c[3] ,也是合法使用的;所以可以用*p*(p + 1)*(p + 2)等来访问数组

    2 传递数组给函数

    通过指定不带索引的数组名来传递一个指向数组的指针,以下三种方式来声明形式参数:

    void function(int *param)  //参数是一个指针
    {
        ...
    }
    void function(int param[10])  //参数是一个指定大小的数组
    {
        ...
    }
    void function(int param[])  //参数是一个未定义大小的数组
    {
        ...
    }

    调用函数,实参利用数组名

    ...
    void function(int p[]);    //声明
    ...
    int a[10];
    ...
    function(a);  //调用
    ...

    3 从函数中返回数组

    通过指定不带索引的数组名来返回一个指向数组的指针;

    如果想要从函数中返回一个一位数组,必须先声明一个返回指针的函数;

    int * function()
    {
        ...
    }

    此外,C++不支持在函数外返回局部变量的地址,除非定义局部变量为static变量,如下:

    #include<iostream>
    
    using namespace std;
    
    int * function()
    {
        static int r[10];
        ...    //对r数组初始化
        return r;
    }
    
    int main()
    {
        int *p;
        p = function();
        ...
        return 0;
    }
  • 相关阅读:
    ssh登录
    wireless tools的使用
    Ubuntu中的minicom
    ubuntu 下交叉编译环境的搭建
    两个队列实现一个栈
    二叉树节点的插入
    二叉树的非递归遍历
    acwing 66. 两个链表的第一个公共结点
    acwing 60. 礼物的最大价值
    acwing 55. 连续子数组的最大和
  • 原文地址:https://www.cnblogs.com/haijian/p/13065051.html
Copyright © 2011-2022 走看看