c - Swap using Pointers -


in code below in order swap between px , py need pointer point address of py , px swap them effectively.

my question int temp when value of px put how give correct value because there no pointer pointing able give right value , how address of int temp not clone give wrong value?

void swap(int px, int py) {     int temp;     temp = px;     px = py;     py = temp; }  //pointer version  void swap(int *px, int *py) {     int temp;     temp = *px;     *px = *py;     *py = temp; } 

both functions swap int values. swap affect calling code's ints?

with second swap(), effect of swap seen in original a,b function works addresses of original a,b.

int = 1; int b = 2; swap_version2(&a, &b); printf("%d %d\n", a, b);  // prints 2 1 

with first swap(), effect of swapped not seen in original c,d. swap() function swapping copies of c,d. net effect: first swap function wastes time. not swap c,d.

int c = 3; int d = 4; swap_version1(c, d); printf("%d %d\n", c, d);  // prints 3 4 

Comments

Popular posts from this blog

serialization - Convert Any type in scala to Array[Byte] and back -

matplotlib support failed in PyCharm on OSX -

python - Matplotlib: TypeError: 'AxesSubplot' object is not callable -