码迷,mamicode.com
首页 > 编程语言 > 详细

数组当做参数传递的问题

时间:2015-02-24 00:49:15      阅读:273      评论:0      收藏:0      [点我收藏+]

标签:

/*
 ============================================================================
 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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!