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

  • 相关阅读:
    linux创建www用户组和用户
    php+nginx改为socket
    laravel重写
    centos7精简版(minimal)killall: command not found
    php+nginx 整合
    php编译安装
    Nginx的编译安装
    sql 中常见的控制流语句
    sqlserver 中常见的函数 数学函数
    sqlserver 中常见的函数字符串函数
  • 原文地址:https://www.cnblogs.com/sallybin/p/3080738.html
Copyright © 2011-2022 走看看