今天学习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;
}