In ANSI C, variables can be referred directly or indirectly depending on the context.
A variable who is referred directly is a variable who is called-by-reference. This means that you will send the actual variable to the function using a pointer. Any modifications that occur in the functions will affect the original variable.
Example:
#include<stdio.h> void CallByValue(int value) { value++; printf("Call by value in function : %d\n",value); } void CallByReference(int *value) { (*value)++; printf("Call be reference in function : %d\n",*value); } int main(int argc, char** argv) { int i = 3; printf("Initial value : %d\n",i); CallByValue(i); printf("After call-by-value : %d\n",i); CallByReference(&i); printf("After call-by-reference : %d\n",i); return 0; } /*Output: Initial value : 3 Call by value in function : 4 After call-by-value : 3 Call be reference in function : 4 After call-by-reference : 4 */
Observation:
The call by reference mechanism can also be used when you have a large variable to pass. This is especially useful when you work with low-memory systems. If you are not planning to modify the variable you should pass the parameter as a constant:
Example:
The call by reference mechanism can also be used when you have a large variable to pass. This is especially useful when you work with low-memory systems. If you are not planning to modify the variable you should pass the parameter as a constant:
Example:
void CallByReference(const int *value) { /*The line below would cause a compiler error because the value to which the pointer points is indicated as constant*/ /*(*value)++;*/ printf("Call be reference in function: %d\n",*value); }
No comments:
Post a Comment
Got a question regarding something in the article? Leave me a comment and I will get back at you as soon as I can!