在写一维数组时,要打印数组显示,但是打印数组又臭又长,还得重复,那么都会选择去封装成函数来方便打印,就会像下面这样:
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);
}
这边指向数组长度的指针定义到静态区,实现无需输入数组长度就可以用子函数来遍历数组。
新手一枚,有错望大佬见谅!!!