Challenge 2: A Function That Tries to Double a Parameter — Possible Solution ==================================================================== #include void double_it(int x) { x = x * 2; // only changes the local copy } int main() { int n = 10; double_it(n); printf("%d\n", n); return 0; } Output: 10 Explanation: n is still 10, not 20, because C passes arguments by value -- calling double_it(n) copies n's current value (10) into the function's own local parameter x. Reassigning x inside double_it only changes that local copy; it has no connection back to main's n at all once the function returns. This is exactly the chapter's own try_to_change example, demonstrating the same behavior with a different operation. WHY THIS WORKS AS AN ANSWER ------------------------------ This confirms n is unchanged (10, not 20) and explains WHY using the chapter's own pass-by-value/copy terminology, rather than treating the output as surprising -- it's the expected, guaranteed behavior of every C function call, not an edge case.