• 数组作为形式参数,数组的大小、长度


    #include <stdio.h>
    #include <stdlib.h>
    //第一个参数表示的是地址,第二个参数表示的是数组的长度
    //注意数组的长度超过数组的元素的时候,其中数组空余的地址全部由系统自动用0进行补充。
    void arrypoint(int datas[], int ent ){          //注意在将数组作为函数的形参的时候,此时数组的中阔号中的内容没有意义,中括号仅仅表示该参数为数组,真正意义上是表示数组的地址。
                                                             //所以占用的字节为数组的类型的字节,并不是数组的总的占用的字节,例如 int datas[]表示的便是数组的类型为int类型地址占用的字节数为4个字节
                                                          //为了知道数组的长度通常采用的是再进行传输一个参数,再传参的时候便计算数组的长度。才将结算的结果作为参数进行传输。
                                                      //再windows系统中通常用四字节表示数组的地址,再Linux的环境中通常采用的是8个字节表示数组。
    int i;
    printf("datas数组的中总长度:%d ",sizeof(datas)); // 此处是求数组的大小,并不是求解数组的长度,这里的大小与数组的类型有关,与数组中的元素的个数无关
    printf("int类型占用的字节的个数:%d ",sizeof(int));
    for(i=0;i<ent;i++){

    printf("%d",datas[i]);
    }
    }
    void sss(){ //注意带参数的函数不能和不带参数的函数名相同
    printf ("系统");
    }
    void ss1(int a, int b, char c){ //带有三个参数的函数
    printf("a=%d,b=%d,c=%c ",a,b,c);
    }
    int main()
    { int arry[3]={1,3,4}; // 该数组已经进行了完全初始化。

    printf("arry数组中元素的个数为:%d ",sizeof(arry)/sizeof(arry[0]));// 计算数组arry的数组的元素的个数

    sss();
    ss1(arry[0],arry[1],'c');
    //将数组与函数进行联系
    arrypoint(arry,sizeof(arry)/sizeof(arry[0]));//在将数组作为形参传参的时候,直接添加数组的名字即可,不用带上中括号
    //数组是连续的,所以元素的第一个索引的地址也表示元该数组的地址
    //arrypoint(&arry[0],sizeof(arry)/sizeof(arry[0]));//注意只能是元素的首地址表示数组的地址,因为数组的地址的指向也就是数组中第一个元素的地址,注意与上面的方式进行对比。

    return 0;
    }

  • 相关阅读:
    [UML]UML系列——活动图activity diagram
    [UML]UML系列——包图Package
    UNIDAC不能识别CLIENTDATASET的TSINGLEFIELD
    UNIDAC如何驱动MSSQL2000
    delphi各个版本编译开关值
    优秀的数据序列和还原类----TSimpleMsgPack
    DELPHI方法注释的标准写法
    客户端如何通过咏南中间件调用存储过程和数据分页查询和文件传输的演示
    delphi 安卓程序如何读取外部配置文件
    调用DATASNAP+FIREDAC的远程方法有时会执行二次SQL或存储过程的BUG
  • 原文地址:https://www.cnblogs.com/Nic-zhang/p/13719522.html
Copyright © 2020-2023  润新知