DAVID เจลัน: ให้เขียนโปรแกรมใน ซึ่งเราพยายามที่จะเปลี่ยนค่านิยมของ สองตัวแปร x และ y ล่วงหน้าฉันได้เขียนมาก ของโปรแกรมนี้อยู่แล้ว ครั้งแรกผมประกาศตัวแปร, x, และจัดเก็บอยู่ในนั้นค่า 1 แล้วฉันจะประกาศตัวแปร y และ เก็บอยู่ในนั้นค่า 2 แล้วฉันจะดำเนินการกับ printf เพื่อแสดง ค่านิยมของทั้งสองตัวแปร แล้วฉันจะเรียกร้องด้วย printf อื่น ที่จะแลกเปลี่ยนตัวแปรเหล่านั้น แล้วฉันจะเรียกใช้ฟังก์ชันที่เรียกว่าการแลกเปลี่ยน แล้วฉันอ้างว่าตัวแปร ได้รับการเปลี่ยน แล้วฉันพิมพ์ออกมาว่าสิ่งที่ฉันเรียกร้อง เป็นค่าใหม่ของ x และ y ตอนนี้สิ่งที่เป็นฟังก์ชั่นการแลกเปลี่ยนนี้ มันไม่ใช่สิ่งที่มาพร้อมกับ C. อันที่จริงถ้าเรามองที่ด้านบนของฉัน แฟ้มคุณจะสังเกตเห็นว่าได้มีการประกาศ แบบอย่างที่ดีสำหรับการแลกเปลี่ยนฟังก์ชั่นนี้ ระบุว่าจะใช้เวลาสอง ints, เรียกพลและ b และนี่ ฟังก์ชั่นไม่ได้กลับอะไร ดังนั้นสันนิษฐานว่ามันไม่สิ่งที่กล่าว ในการแลกเปลี่ยนและค่า b ของ ตอนนี้ขอใช้แลกเปลี่ยน ครั้งแรกที่ฉันจะประกาศชั่วคราว ตัวแปรและกำหนดให้กับมัน ค่าใน แต่ฉันได้เพียงแค่ เก็บไว้ได้อย่างง่ายดายในนั้นข แล้วฉันจะเปลี่ยนค่า ของจะเท่ากับว่าในข แล้วสุดท้ายที่ฉันจะเปลี่ยน ค่าของ b จะเป็นสิ่งที่เป็น แต่ ขณะนี้อยู่ในอุณหภูมิ ตอนนี้ผมเรียกร้องสิ่งที่ฉันได้ทำเพียงแค่ ถูกต้องมีเหตุผล ฉันได้เก็บไว้ในตัวแปรชั่วคราว เปลี่ยนค่าเป็นของ b และจากนั้น ค่าที่มีการเปลี่ยนแปลงขจะเป็นสิ่งที่เป็น แต่เมื่อผมรวบรวมและใช้นี้ โปรแกรมที่ผมกังวลว่าไม่ ไปสิ่งที่ฉันเห็น ทำให้ไม่มีการแลกเปลี่ยน จุดเฉือนแลกเปลี่ยนไม่ และโชคร้ายที่ตาม printf, ค่าของ x และ y แม้ หลังจากที่เราเรียกร้องให้มีการแลกเปลี่ยน พวกเขายังคงเป็นที่ 1 และ 2 ตอนนี้ทำไมจึงเป็นเช่นนั้น ดีก็ปรากฎว่าในหลักเมื่อเรา แลกเปลี่ยนเรียกฟังก์ชั่นนี้ผ่านใน x และ y เป็นอาร์กิวเมนต์ก็จริง สำเนาของ x และ y ที่ จะผ่านเข้าไปในการแลกเปลี่ยน คือค่าของพวกเขาที่ 1 และ 2 เป็น ผ่านเข้าไปแลกเป็นและข และมันก็เป็นและ b ว่าเราในที่สุด การแลกเปลี่ยนในหลัก นั่นคือ 1 กลายเป็น 2, 2 กลายเป็น 1 แต่เนื่องจากมีการแลกเปลี่ยนค่าตอบแทนใด ๆ และเพราะมันได้รับสำเนาของ x และ y ก็พฤติกรรมได้ ผลกระทบต่อ x และ y ไม่มี แท้จริงและ b จะถูกกำหนดขอบเขตเพื่อที่จะพูด เพื่อแลกเปลี่ยนในขณะที่ x และ y ยังคงอยู่ กำหนดขอบเขตที่จะหลัก ดังนั้นเราจึงมีปัญหา แต่วิธีการที่จะแก้ไขมันได้หรือไม่