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
|