欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数组做形参会退化为指针

程序员文章站 2023-12-31 14:40:22
...

数组做形参会退化为指针


int swap(int arr[])
{
    
  return sizeof(arr)/arr[0];
}


int main(int argc,char **argv)
{
    int arr[] = {1,2,3,4,5,6,7,8,9,10};
    int len = sizeof(arr) / arr[0];
    /**
      * 此处可以得知 len = 10;
      * 因为arr为数组类型,sizeof函数求的是数组占用空间长度
      */

    int lenOfSwap = swap(arr);
    /**
      * 此时,如果32位平台编译,lenOfSwap = 1;
      * 因为,arr此时退化为了指针
      * 指针,在32位时大小固定为4字节
      * 即使, int swap(arr[100])  此时lenOfSwap还是1,因为arr本质只是一个指针
      */
}

 

上一篇:

下一篇: