C无数组的长度传参(伪)

 在写一维数组时,要打印数组显示,但是打印数组又臭又长,还得重复,那么都会选择去封装成函数来方便打印,就会像下面这样:

void PrintArrs(int *nums,const int len){
    for(int i=0;i<len;++i){
        printf("%d\t",nums[i]);
    }
}

 多一个数组长度len,看着挺烦的,在使用的时候要再加上长度计算,

int main(){
    int arr[]={1,4,32,54};
    int size=sizeof(arr)/sizeof(int);
    PrintArr(arr,size);
}

这样每次打印会增加代码量,不方便看,想到一种方法解决这个问题,用全局指针来指向数组长度地址:

#include <stdio.h>
static int *len;
void PrintArrs(int *nums){
    for(int i=0;i<*len;++i){
        printf("%d\t",nums[i]);
    }
}
int main(){
    int arr[]={1,4,32,54};
    int size=sizeof(arr)/sizeof(int);
    len=&size;
    PrintArrs(arr);
}

这边指向数组长度的指针定义到静态区,实现无需输入数组长度就可以用子函数来遍历数组。

新手一枚,有错望大佬见谅!!!

Guess you like

Origin blog.csdn.net/weixin_51743500/article/details/121623768