10
การส่งอาร์เรย์เป็นอาร์กิวเมนต์ไปยังฟังก์ชันใน C
ฉันเขียนฟังก์ชันที่มีอาร์เรย์เป็นอาร์กิวเมนต์และเรียกใช้โดยการส่งผ่านค่าอาร์เรย์ดังนี้ void arraytest(int a[]) { // changed the array a a[0]=a[0]+a[1]; a[1]=a[0]-a[1]; a[0]=a[0]-a[1]; } void main() { int arr[]={1,2}; printf("%d \t %d",arr[0],arr[1]); arraytest(arr); printf("\n After calling fun arr contains: %d\t %d",arr[0],arr[1]); } สิ่งที่ฉันพบคือแม้ว่าฉันจะเรียกarraytest()ใช้ฟังก์ชันโดยการส่งผ่านค่า แต่สำเนาต้นฉบับint arr[]ก็เปลี่ยนไป คุณช่วยอธิบายได้ไหมว่าทำไม?