标签:
/*
============================================================================
Name : TestArray.c
Author : lf
Version :
Copyright : Your copyright notice
Description : 数组当做参数传递的问题
数组当做参数传递的时候,传递的是数组的指针
因为:
1 数组的拷贝很耗费资源.为了避免这种情况,C语言的编译器在传递数组时传递数组的指针
2 C语言中数组名代表了数组的首地址
但在接收到该数组参数后,对其进行操作时还是作用于原来的数组.
这个问题有点特殊,暂时记下来,后续在深究.
============================================================================
*/
#include <stdio.h>
#include <stdlib.h>
int main(void) {
//所占内存大小为20个字节
int array[5]={1,2,3,4,5};
printf("main int array[5] size=%d\n",sizeof(array));
printf("===========\n");
int i;
for(i=0;i<5;i++){
printf("first array[%d]=%d\n",i,array[i]);
}
printf("===========\n");
//把数组作为参数传递到其他的函数
testArray(array);
for (i = 0; i < 5; i++) {
printf("second array[%d]=%d\n", i, array[i]);
}
printf("===========\n");
return EXIT_SUCCESS;
}
void testArray(int array[5]){
//因为传递过来的仅仅是个指针,所以其大小为4个字节
printf("testArray int array[5] size=%d\n",sizeof(array));
printf("===========\n");
//改变原来的数组
int i;
for (i = 0; i < 5; i++) {
array[i] = array[i] + 5;
}
}
标签:
原文地址:http://blog.csdn.net/lfdfhl/article/details/43920053