c++ - Why wouldn't this program change anything, but the one below it does? -


i'm studying pointers in c++ upcoming exam , don't know why first code here doesn't swap values second 1 does. if explain me why great.

why wouldn't program swap values of b[0] , b[1]:

#include <iostream> using namespace std;  void func1 (int* x, int *y) {     int* temp = x;     x = y;     y = temp; }  int main() {     int b[6] = { 1, 2, 3, 4, 5, 6};     func1(&b[0], &b[1]);     cout << b[0] << b[1]; } 

but 1 does:

#include <iostream> using namespace std;  void func2(int* x, int *y) {     int temp = *x;     *x = *b;     *y = temp; }  int main() {     int b[6] = { 1, 2, 3, 4, 5, 6};     func2(&b[0], &b[1]);     cout << b[0] << b[1]; } 

thank :d

the explanation in first case exchanging pointers values, not pointed values themselves. you're manipulating addresses in first case, while in second case, manipulate values.


Comments

Popular posts from this blog

sublimetext3 - what keyboard shortcut is to comment/uncomment for this script tag in sublime -

java - No use of nillable="0" in SOAP Webservice -

ubuntu - Laravel 5.2 quickstart guide gives Not Found Error -