先来看一个例子:

#include<stdio.h>
int main(int argc,char *argv){
    /*定义一个长度为10的char数组*/
    char a[10];
    /*计算该数组长度*/
    int len=sizeof(a)/sizeof(char);

    printf("数组a的长度为:%d",len);

    return 1;
}

输出结果为:数组a的长度为:10

 

接着再看另一个例子:

#include<stdio.h>

/*声明一个函数*/
int test(char a[]);

int main(int argc,char *argv){
    /*定义一个长度为10的char数组*/
    char a[10];
    /*计算该数组长度*/
    int len=test(a);

    printf("数组a的长度为:%d",len);

    return 1;
}

int test(char a[]){
    /*计算该数组长度*/
    return sizeof(a)/sizeof(char);
}

输出结果为:数组a的长度为:4

 

数组作为函数形参传递时,相当于指针,而指针的长度是4个字节,因此显示4,

函数中需要知道数组大小时,需要传入两个参数,一个参数传数组名,另一个传数组大小。

如:int test(char a[],int n);

相关文章:

  • 2021-05-30
  • 2022-12-23
  • 2022-12-23
  • 2021-05-13
  • 2022-12-23
  • 2021-12-05
  • 2021-04-19
猜你喜欢
  • 2021-05-22
  • 2021-06-02
  • 2021-12-05
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-10
相关资源
相似解决方案