64 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			64 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								title: Structures
							 | 
						||
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								## Structures in C
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### What are Structures?
							 | 
						||
| 
								 | 
							
								* A **structure** is a user-defined type in C. It is based on the idea that certain times, programmer wants to manage not just primitive data-types but also programmer-defined data-types.
							 | 
						||
| 
								 | 
							
								* **Structure**, as the name suggests, consists of various primitive data-types, like character, integers, floating point variables, arrays, etc.
							 | 
						||
| 
								 | 
							
								* **Structure** can also contain various other user-defined data types. You would learn about nested-structures next.
							 | 
						||
| 
								 | 
							
								* **Structures** form the basis of **_object-oriented-programming_** as the concept of *class* originates from structures.
							 | 
						||
| 
								 | 
							
								### struct keyword
							 | 
						||
| 
								 | 
							
								* `struct` keyword can help us in defining a user-defined data type.
							 | 
						||
| 
								 | 
							
								```C
							 | 
						||
| 
								 | 
							
								struct StudentRecord
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  char Name[20];
							 | 
						||
| 
								 | 
							
								  int Class;
							 | 
						||
| 
								 | 
							
								  char Address[30];
							 | 
						||
| 
								 | 
							
								  char Phone[10];
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								* We can also define a **structure** using **typedef** which makes initializing a structure later in our program easier.
							 | 
						||
| 
								 | 
							
								```C
							 | 
						||
| 
								 | 
							
								typedef struct StudentRecord
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  char Name[20];
							 | 
						||
| 
								 | 
							
								  int Class;
							 | 
						||
| 
								 | 
							
								  char Address[30];
							 | 
						||
| 
								 | 
							
								  char Phone[10];
							 | 
						||
| 
								 | 
							
								}Record;
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								In `main()`, the user-defined data-type **StudentRecord** is defined as:
							 | 
						||
| 
								 | 
							
								```C
							 | 
						||
| 
								 | 
							
								int main(void)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  struct StudentRecord student1;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								And using **typedef**, the user-defined data-type looks like:
							 | 
						||
| 
								 | 
							
								```C
							 | 
						||
| 
								 | 
							
								int main(void)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  Record student1;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								To access the data stored in **student1**, we use dot( **.** ) operator to access the contents of the structure type variable.
							 | 
						||
| 
								 | 
							
								```C
							 | 
						||
| 
								 | 
							
								int main(void)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  struct StudentRecord student1;
							 | 
						||
| 
								 | 
							
								  student1.Class = 10;
							 | 
						||
| 
								 | 
							
								  printf("Enter Name of Student\n");
							 | 
						||
| 
								 | 
							
								  scanf("%s",&student1.Name);
							 | 
						||
| 
								 | 
							
								  printf("Enter Address of Student\n");
							 | 
						||
| 
								 | 
							
								  scanf("%s",&student1.Address);
							 | 
						||
| 
								 | 
							
								  printf("Enter Phone Number of Student\n");
							 | 
						||
| 
								 | 
							
								  scanf("%s",&student1.Phone);
							 | 
						||
| 
								 | 
							
								  // Printing the Data
							 | 
						||
| 
								 | 
							
								  printf("Name: %s \n, Class: %d \n, Address: %s \n, Phone: %s \n",student1.Name, student1.Class, student1.Address, student1.Phone);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								### More Information  
							 | 
						||
| 
								 | 
							
								https://www.tutorialspoint.com/cprogramming/c_structures.htm
							 |