为什么数组中某一个元素的值可以在函数中被改变,如果是单一变量就不可以?
#include<stdio.h> void change(int b) { b = 5; } int main() { int a=3; change(a); printf("%d\n",a); return 0; }
这个代码执行出来的结果还是3,change函数里的操作不影响main函数里定义的a的值
#include<stdio.h> void change(int arr1[]) { arr1[0]= 3; } int main() { int arr[]={1,2,3}; change(arr); printf("%d\n",arr[0]); return 0; }
但是对于数组来言,在change函数里改变了只是作为形参的arr1的一个元素的值,却影响了在main函数中定义的arr的第一个元素的值。
求解释,谢谢