C语言获取指针指向的数组长度的基本尝试
C语言中指针只是一个记录内存地址的一个变量,通常我们在传递数组类型的形参时会将数组的指针传递过来,但是数组的长度一般时很难获取的,因此为了克服数组长度难以获取的问题,一般都会将数组指针和数组长度一起传递。
下面介绍指针获取数组长度的尝试案例
#include <stdio.h>
#include<ctype.h>
typedef struct Student{
char num[10];
int score;
}Stu;
int fun(Stu *s){
int length=0;
while(true){
Stu p=*(s+length); //移动指针取值:
//判断空地址的取值是否为字母从而得出数组长度判断的临界值
if(!isalpha(p.num[0]))
break;
length++;
}
return length;
}
int main(){
Stu students[4]={"zhangsan",88,"lisi",60,"wangwu",90,"maliu",75};
int length=fun(students);
printf("数组长度:%d",length);
}
结果:
缺陷:
对数组的成员对象具有约束性,不能作为获取数组长度的通用接口
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: 在localStorage中存储对象数组并读取
- 下一篇: “区块链“ 究竟是什么