A structure can be used as an argument to a function just like any other variable, however a few points should be borne in mind.
Where we wish to modify the value of members of the structure, we must pass a pointer to that structure. This is just like passing a pointer to an int type argument whose value we wish to change.
If we are only interested in one member of a structure, it is probably simpler to just pass that member rather than the whole structure. This will make for a simpler function, and one which is easier to re-use. Of course if we wish to change the value of that member, we should pass a pointer to it.
In the interests of program efficiency it should be stressed that when a structure is passed as an array argument, each member of the structure is copied into the argument list for that function. This can be a time consuming process for structures with many members. However if a pointer to the structure is passed, then only one piece of data is copied (the address of the start of the structure). This can make a big difference to program performance if your structures are large, or the functions are called many times.