/* ============================================================================ 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; } }
时间: 2024-10-17 04:03:49