牛骨文教育服务平台(让学习变的简单)
博文笔记

C语言获取指针指向的数组长度的基本尝试

创建时间:2016-12-13 投稿人: 浏览次数:3448

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);
} 

结果:
这里写图片描述

缺陷:
对数组的成员对象具有约束性,不能作为获取数组长度的通用接口

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。