C Structure

by anupmaurya
0 comment

In this tutorial, you’ll learn about C structure. You will learn how to define and use structures with the help of examples.

What is a structure?

A structure is a user-defined data type in C. A structure creates a data type that can be used to group items of possibly different types into a single type.

How to create a structure?

Before you can create structure variables, you need to define its data type. To define a struct, the struct keyword is used.Following is the syntax

Syntax of struct

struct structureName 
    dataType member1;
    dataType member2;


struct House { char Ownername[50]; int citNo; double pincode; };
Code language: C/AL (cal)

Here, a derived type struct House is defined. Now, you can create variables of this type.

How to declare structure variables?

A structure variable can either be declared with a structure declaration or as a separate declaration like basic types.

<strong>// A variable declaration with structure declaration.</strong> struct Point { int x, y; } p1; // The variable p1 is declared with 'Point' <strong>// A variable declaration like basic data types</strong> struct Point { int x, y; }; int main() { struct Point p1; // The variable p1 is declared like a normal variable }
Code language: PHP (php)

 In C, it is mandatory to use struct keyword before variable name.

How to initialize structure members?

Structure members cannot be initialized with the declaration. For example, the following C program fails in the compilation.

struct Point { int x = 0; // COMPILER ERROR: cannot initialize members here int y = 0; // COMPILER ERROR: cannot initialize members here };
Code language: JavaScript (javascript)

The reason for above error is simple, when a datatype is declared, no memory is allocated for it. Memory is allocated only when variables are created.

Structure members can be initialized using curly braces ‘{}’. For example, following is a valid initialization.

struct Point { int x, y; }; int main() { // A valid initialization. member x gets value 0 and y // gets value 1. The order of declaration is followed. struct Point p1 = {0, 1}; }
Code language: PHP (php)

How to access C structure elements?

There are two types of operators used for accessing members of a structure.

  1. . – Member operator
  2. -> – Structure pointer operator

Structure members are accessed using dot (.) operator.


include<stdio.h> struct Point { int x, y; }; int main() { struct Point p1 = {0, 1}; // Accessing members of point p1 p1.x = 20; printf ("x = %d, y = %d", p1.x, p1.y); return 0; }
Code language: C/AL (cal)


x = 20, y = 1

Keyword typedef

We use the typedef keyword to create an alias name for data types. It is commonly used with structures to simplify the syntax of declaring variables.

This code

struct Distance{ int feet; float inch; }; int main() { struct Distance d1, d2; }

is equivalent to

typedef struct Distance{ int feet; float inch; } distances; int main() { distances d1, d2; }

More on C structure

You may also like