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

#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\n",sizeof(datas)); // 此处是求数组的大小,并不是求解数组的长度,这里的大小与数组的类型有关,与数组中的元素的个数无关
printf("int类型占用的字节的个数:%d\n",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\n",a,b,c);
}
int main()
{ int arry[3]={1,3,4}; // 该数组已经进行了完全初始化。

printf("arry数组中元素的个数为:%d\n",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;
}

posted @   LInguistic-零点  阅读(2447)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示