Let’s move to a more interesting topic: function with structure. Before starting, let’s go back and revise the concept of passing values in function.
void func(int number){ // here that same passed num is received as number
//Do whatever you like with number
}
void main(){
int num = 5;
func (num); //an integer variable num is passed to function func()
}
If that’s clear to you, let’s pass a structure variable to a function.
1.Pass structure to a function by value
Here I have a variable named num1 of type complex. What I did, I just passed num1 in the function func(). The function then received the value as complex num. Isn’t it that simple?
2.Return structure from a function
Here the func() return type is not void but complex (Line 8) as the function returns a complex variable num (Line 12)
The returned value is received by modified_num (another complex variable) at Line 19 and printed at Line 20
3.Pass structure to a function by reference
So first remember what you need to do for passing a value by reference
- Pass the address of the variable (here &num1 at line 17).
- Receive the address as a pointer (don’t forget about correct data type) in the function definition (here complex* num at line 8)
So that’s what is done in the code. And just remember one other thing: to access structure members with a pointer, you need to use → operator (Line 10 and 11).
I hope this explains clearly. That’s all.
If you are looking for a book for C programming, please check out the Programming In Ansi C. That is one of my favorites.
Thank you!