What is a structure?


A structure is a collection of variables. For instance, if you have a student structure then you will group the student number, student name, and sex together.

Creating and using a structure

To create a structure, you must use typedef struct keyword. Variables of the structure must be put in curly brackets. In the example below, we create a structure named student containing stnumber,stname, and stsex variables.


Example

#include<stdio.h>

#include<stdlib.h>

struct student
{

  int stnumber;

  char *stname;

  char *stsex;
};

To use student structure, you must declare it.

Example:

int main()
{
  student stu;
  return 0;
}

To set values to the items of the structure, you must use the name of structure that has been declared followed by the names of those items.

Example:

#include<stdio.h>
#include<stdlib.h>


typedef struct
{
  int stnumber;
  char *stname;
  char *stsex;
}student;

int main(){
  student stu;
  stu.stnumber=123;
  stu.stname="Channa";
  stu.stsex="Male";
  printf("%d %s %s",stu.stnumber,stu.stname,stu.stsex);
  getch();
  return 0;
}

Pointers to structures

When you are using a pointer to a structure then you can use a -> instead of a dot to access its items.

Example:

student stu;
student *sp = &stu;
sp->stnumber = 123;

sp->stname=”Channa”;

st->stsex=”male”;

Array of Structures

You also can create an array to store structures in similar way as you do with storing integral values, float values, string values, etc.

Example:

#include <stdio.h>
#include <stdlib.h>

typedef struct{
  char em_number[10];
  char em_name[20];
  float em_salary;

}employee;


int main(int argc, char *argv[])
{


employee emp[2];

  int i;
  //assign values to each element of the array
  strcpy(emp[0].em_number,"em0001");
  strcpy(emp[0].em_name,"Sok Chan");
  emp[0].em_salary=820;
  strcpy(emp[1].em_number,"em0002");
  strcpy(emp[1].em_name,"Villa Morn");
  emp[1].em_salary=920;

  //show contents of each element of the array
  printf("ID\tName\t\tSalary\n");
  for(i=0;i<2;i++){
    printf("%s\t",emp[i].em_number);
    printf("%s\t",emp[i].em_name);
    printf("%.2f\n",emp[i].em_salary);

}


  system("PAUSE");
  return 0;
}

HTML Comment Box is loading comments...



This website intents to provide free and high quality tutorials, examples, exercises and solutions, questions and answers of programming and scripting languages:
C, C++, C#, Java, VB.NET, Python, VBA,PHP & Mysql, SQL, JSP, ASP.NET,HTML, CSS, JQuery, JavaScript and other applications such as MS Excel, MS Access, and MS Word. However, we don't guarantee all things of the web are accurate. If you find any error, please report it then we will take actions to correct it as soon as possible.