黑马程序员技术交流社区

标题: 数组传参的两种用法 [打印本页]

作者: Northcity    时间: 2015-7-25 23:00
标题: 数组传参的两种用法
第一种  数组名  数组长度
  1. #include <stdio.h>
  2. int caculate(int *arr,int);
  3. int main(int argc, const char * argv[]) {
  4.     int arr[6]={0,1,2,3,4,5};
  5.     printf("数组和是%d\n",caculate(arr,6));
  6.     return 0;
  7. }
  8. int caculate(int start[], int len){
  9.     int total = 0;
  10.     for(int i = 0;i < len;i++)
  11.         total+=start[i];
  12.     return total;
  13. }
复制代码


第二种  数组名  数组结尾指针(注意C语言允许指针指向数组后一位,越界而不报错,但是不保证内容    例如:caculate(arr,arr+6))

  1. #include <stdio.h>
  2. int caculate(int *arr,int *n);
  3. int main(int argc, const char * argv[]) {
  4.     int arr[6]={0,1,2,3,4,5};
  5.     printf("数组和是%d\n",caculate(arr,arr+6));
  6.     return 0;
  7. }
  8. int caculate(int *start, int *end){
  9.     int total = 0;
  10.     while(start < end){
  11.         total += *start;
  12.         start++;
  13.     }
  14.     return total;
  15. }
复制代码

作者: luffy901210    时间: 2015-7-25 23:02
呵呵,用心良苦啊,难得可贵,加油!骚年




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2