首页 > 技术文章 > c语言学习笔记 函数数组传递笔记

luckylihuizhou 2017-02-21 09:29 原文

今天学习c语言的一个小例子,果然还是陷入了php的编程习惯里,这里记录一下。

#include <stdio.h>

//例子很简单,就是编写一个函数把传递进来的数组里的值都赋值为1而已

//不仅仅是参数和数据要指明类型,函数本身也要指明返回类型,如果没有返回类型,只是操作过程用void

void ope_arr(int arr[],int n)   // 注意这里传递的形参 arr[] ,这里传递进来的是数组的地址

{

  int i;

  for(i=0;i<n;i++)  

  {

    arr[i]=1; //通过地址传递进来的数组 ,在该函数内部操作时也是通过地址 ,找到内存块上的数组数据进行操作

  }

  //所以这里操作完数组后,对应内存块上的数组数据已经变动,外面直接调用该数组时已经改变,不用返回

  //按php的操作习惯,传递进来数组不指明地址引用的话,都要return 数组,否则外面的数组并不会改变,这说明php默认不是地址引用操作,可能要在内存上多生成一个临时空间来接数据。

}

int main(void)

{

  int i;

  int arr[3]={1,2,3};

  ope_arr(arr,3);

  for(i=0;i<3;i++)

  {

    printf("arr[%d] is %d \n",i,arr[i]);  //注意

  }

  return 0;

}

 

推荐阅读