zoukankan      html  css  js  c++  java
  • C语言中 数组作为函数形参传递相当于指针,在函数中不能得到数组长度,只能得到指针长度4

    先来看一个例子:

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

  • 相关阅读:
    关于上传组件
    二分查找的时间复杂度
    commander.js
    执行上下文
    谷歌插件开发
    网站性能
    日记
    <<人间失格>>阅读
    Node.js 应该用在什么地方
    浅谈前后端分离与实践 之 nodejs 中间层服务
  • 原文地址:https://www.cnblogs.com/sallybin/p/3080738.html
Copyright © 2011-2022 走看看