Home >>C Tutorial >C Structure
As a fact, we know that types of variable that can hold several data items of the same type are defined by the arrays. Structures in C language works kind of similar to the array as these structures are the user defined data types in the C language and data items of various kinds are permitted by them.
The use of the structure in the C language is mainly to represent a record. Let’s assume you want to keep a track of your students in a class then you will need these following attributes of each student:
Let's understand the process of defining a structure in C
Struct statements are must to use when you are trying to define a structure in C. the struct statement is known to define a new data type having more than one number.
syntax of the struct statement in the C language:
struct [structure tag] { member definition; member definition; ... member definition; } [one or more structure variables];
Each member in the struct statement is a normal variable definition like int i; or float f; or some other valid variable definition and the struct tag is optional.
One or more than one struct variable can be specified, just before the final semicolon and at the end of structure’s definition but it is meant to be optional. Following is the way to declare the student structure:
struct Students { char name[50]; char roll number[50]; char class[100]; int student id; } student;
Let's get to know the accessing the structure members in the C language
The member access operator (.) is used in order to access any member of the structure. Between the structure variable name and the structure member that a user want to access, the member access operator is generally coded as a period. In order to define the variables of the structure type, the struct keyword is generally used.
Here is an example that will define it better for the users to understand:
Example will display here
Let's understand the structures as function arguments in the C language
Structures can be passed as a function argument just in the same way as a variable or a pointer is passed in the C language.
Example will display here
Let's understand the pointers to structures in C language
Pointer to Structures can be defined just in the same way as any other variable or a pointer is defined in the C language.
struct Student *struct_pointer;
Now that the structure is defined, the address of the structure variable can be stored as in the above defined pointer variable. You have to place the ‘&’ operator just before the structure’s name in order to find the address of the structure variable.
struct_pointer = &Student1;
The members of a structure can be accessed just by using a pointer to that structure. Follow the below mentioned way: struct_pointer->name;
Example will display here
The packing of the data in a structure is permitted by the bit fields. The special use of bit fields lies when the storage of the memory or data is at a premium. Here are the most typical example of them:
It is allowed to do this in a structure definition by the C language just by placing the: bit length after a variable.
Example will display here
The bit fields are compactly packed to the brim by the C language automatically only if the maximum length of the field is equal to or less than the integer word length. Apart from this case, memory overlap of the fields are allowed by the compilers while others are known to store the next field in the next word.