A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wehuazi 中级黑马   /  2014-10-19 20:51  /  642 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. #include <stdio.h>
  2. //声明函数min()
  3. int min();
  4. int main()
  5. {
  6.     //1.定义一个数组,并赋初值
  7.     int a[] = {3,2,1,4,5,-1,0};
  8.     int l = sizeof(a)/sizeof(int);
  9.     //2.调用min函数,并输出结果
  10.     printf("%d\n",min(a,l));
  11. }

  12. int min(int array[],int l)
  13. {
  14.     //定义最小值m为数组的第一个
  15.     int m = array[0];
  16.     //以数组长度遍历数组
  17.     for(int i=1; i<=l; i++)
  18.         //如果有比m小的,将较小值赋值给m
  19.         if(m>array[i])
  20.             m = array[i];
  21.     //返回最小值
  22.     return m;
  23. }
复制代码

1. 数组作为函数的参数来接收传进来的数组的时候,为了效率问题,形参的数组当指针用,该形参数组指向源数组的首地址
2. 如果你在函数中这样写   sizeof(array) 相当于求指针 array变量 的内存大小哦,
3. 由于main函数中的数组已经分配好内存空间(在main函数的栈内存中分配), a就代表这这个数组空间的首地址
4. sizeof 求变量的内存空间,首先会得到该变量的首地址,然后根据变量的类型(变量类型是告诉如何寻址)来计算所占有内存空间大小

再次感谢"明天过后1"的答疑.

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马