数组做函数参数时应注意的问题

 时间:2026-02-13 08:56:35

#include <stdio.h>//声明一个函数void printArray(int values[5]);int main(int argc, const char * argv[]) {//定义一个数组int nums[5] = {1,3,5,7,9};//把数组传递给函数printArray(nums); //结果只打印出:1和3return 0;}//实现该函数

//注意:如果数组作为函数的形参,那么在函数中就不能通过数组名计算数组的元素个数

//因为系统会自动将数组形参转换为指针,指针占用8个字节

void printArray(int values[5]){

//1.动态计算元素个数

//其本质是: 8字节 / 4字节

int length = sizeof(values) / sizeof(values[0]); //结果发现永远都只有2个元素//2.遍历数组

for (int i=0; i<length; i++) {

printf("%i\n",values[i]);}}

数组做函数参数时应注意的问题

扩展资料

传递数组作为参数时只传递了数组在内存中的首地址,但对于数组有多大,必须由数组长度来确定。否则的话函数中对于数组的操作可能会越界,即对原本不属于数组的内存进行了修改,这样可能会导致程序出错。

当然,假如能用其他方法来判断数组的结束地址,比如数组的最后一个元素设为一个特殊值,那么也可以不用传递数组长度。

参考资料来源:百度百科-数组

  • 鬼谷八荒中怎么增加储物空间
  • 饥荒寄居蟹房子怎么修
  • 死亡细胞如何获得山洞钥匙
  • c/c++中的自增运算符详解
  • 坎巴拉太空计划怎么开启过热条显示
  • 热门搜索
    男发型大全 锅底的黑垢怎么去除 相当的近义词 纸玫瑰怎么折 风寒感冒与风热感冒的区别 品胜充电宝怎么样 低烧不退怎么办 怎么装修房子 上海当代艺术博物馆 win7怎么升级win10