C++ Array vs Object - Pass by value
You can not pass an array by "pass by value", whereas objects can be passed by value. Here is a snippet:
You can pass an array to a function in only following manner:
int arr[2] = {0,1};
void s(int arr[]){ //This statement is equivalent to: void s(int *arr)
arr[0]=2;
}
s(arr); // This passes array pointer by value and hence the complete is passed by reference. Meaning to say function s will operate on real array and not on a "copied" array of the one passed in argument.
You can pass an object to a function in two ways:
void s(Obj* o) // this statement is equivalent to: void s(Obj & o). Pass by reference
void s(Obj o) // Pass by value. The actual ojbect passed as parameter when invoking the function, gets copied and function acts on copied object and not on actual object
You can pass an array to a function in only following manner:
int arr[2] = {0,1};
void s(int arr[]){ //This statement is equivalent to: void s(int *arr)
arr[0]=2;
}
s(arr); // This passes array pointer by value and hence the complete is passed by reference. Meaning to say function s will operate on real array and not on a "copied" array of the one passed in argument.
You can pass an object to a function in two ways:
void s(Obj* o) // this statement is equivalent to: void s(Obj & o). Pass by reference
void s(Obj o) // Pass by value. The actual ojbect passed as parameter when invoking the function, gets copied and function acts on copied object and not on actual object
Comments
Post a Comment