我看到数组那一块了,下面是我的代码,如果在main中调用test1函数时传入数组的话会改变array[0]的值,但是test传入array[0]时则不会改变,传入数组是传入数组的地址过去,则会改变,但是数组的地址不是等于数组的第一个元素的字节地址吗?虽然看到解释说,一位数组的元素作为实参与一般变量作为实参一样,是单向值传递不会改变地址。但是还是感觉很别扭啊。- void test(int a)
- {
- a = 9;
- }
- void test(int b[])
- {
- b[0] = 9;
- }
- void main()
- {
- int ages[3];
- ages[0] = 10;
- printf("调用前:%d\n",ages[0]);
- test(ages);
- printf("调用后:%d\n",ages[0]);
- }
复制代码
|