zoukankan      html  css  js  c++  java
  • 数组是怎么索引的

    int a[3];

    如果a的地址是x;

    那么a[i]的地址=x+i*sizeof(int);

    所以a[0]的地址=x  //数组开始的地址和数组第一个元素的地址是同一个地址

    a[1]的地址=x+1*4=x+4

    a[2]的地址=x+2*4=x+4

    所以只要给出一个数组的第一个元素开始的地址和这个数组元素的类型就能求得这个数组中所有元素的地址了,从而可以访问

    数组中所有元素的值了。

    所以函数如果有数组作为参数的时候会有这种情况

    int test(int a[])

    {

      int b=a[2];

      return 1;

    }

    传递进来的数组是没有元素大小的,它只有数组的首地址和数组的类型,但只需要这两个我们就能存取数组中所有元素了。

    实际上当你给test函数传递int a[3]的时候这个3也是没有意义的,因为这个3根本就没有被传递给test函数,所以在给函数传递

    数组的时候,数组大小可有可无的,但如果函数内部需要用到数组大小怎么办? 可以把数组大小作为另一个参数传递进来。

    比如int test(int a[],int length)

  • 相关阅读:
    爬虫基础简介
    父子分类与无限分类
    Flask路由层
    Flask基础简介
    DRF之JWT签发,认证,群查
    DRF之JWT简介
    DRF之认证组件
    软件众包外包平台汇总
    Python与机器视觉(x)windows下import cv2报错dll
    【今日CV 视觉论文速览】Fri, 8 Feb 2019
  • 原文地址:https://www.cnblogs.com/yfish/p/9837652.html
Copyright © 2011-2022 走看看