zoukankan      html  css  js  c++  java
  • [整理]函数的声明中的数组参数

    在函数的声明的数组参数中,并为指明数组的长度。因为在C中,允许单个函数操纵任意长度的一维数组。这个特性不利的一面是函数没法知道该数组的长度。如果确实需要知道数组的长度,必须作为一个单独的参数传递给函数。

    当数组名作为实参时,传递给函数的实际上是一个指向数组起始位置的指针。

    /*开发环境:vs2010 window xp sp3*/
    #include <stdio.h>
    
    int main(void)
    {   
        void array_len(int v[]);
        int v[]= { 70, 30, 40, 60, 10, 20, 50, 100, 80, 90 };
        int len;
    
        array_len(v);
    
        len=sizeof(v)/sizeof(int);//40/4=10, sizeof(v)返回的是一维数组的元素总共所占的自己数10*4
        printf("%d
    ",len);    //10
        
        return 0;
    }
    
    void array_len(int v[]){
        int len=sizeof(v)/sizeof(int);//4/4=1,sizeof(v)返回的是int *p 指针的长度,为4个字节
        printf("%d
    ",len);    //1
    }

    以上int改成long也是一样的结果。

    需要注意的的是:
    指针和long int 占据的是一样的,代表了这个平台的字宽,即机器的最大寻址宽度,32位就是4字节。

  • 相关阅读:
    WLAN 802.11 a/b/g PHY Specification and EDVT Measurement III
    L233
    L232 No methane on Mars
    leetcode 38 Count and Say ---java
    海量字符串查找——bloom filter,c
    leetcode 37 Sudoku Solver java
    mount --bind使用方法
    ECS API
    Linux挂载磁盘
    ECS简述
  • 原文地址:https://www.cnblogs.com/Benoly/p/3806467.html
Copyright © 2011-2022 走看看