C++ Structures

Sometimes a program needs to store different types of information together.

For example, a student may have a:

  • Name
  • Age
  • Marks

A C++ structure (struct) allows us to group related data under one name.

What is a Structure?

A structure is a user-defined data type that can contain different types of data.

For example:

struct Student {
    string name;
    int age;
    double marks;
};

Here, Student can store a student’s name, age, and marks.

Creating a Structure Object

After creating a structure, you can create an object of that structure.

Student student;

Here, student is a structure object.

Let’s see a complete example:

#include <iostream>
#include <string>
using namespace std;

struct Student {
    string name;
    int age;
    double marks;
};

int main() {
    Student student;

    student.name = "Rahul";
    student.age = 14;
    student.marks = 88.5;

    cout << "Name: " << student.name << "\n";
    cout << "Age: " << student.age << "\n";
    cout << "Marks: " << student.marks;

    return 0;
}

Output:

Name: Rahul
Age: 14
Marks: 88.5

The dot (.) operator is used to access the members of a structure object.

student.name
student.age
student.marks

Initializing a Structure Object

You can also provide values when creating the object.

Student student = {"Anjali", 15, 92.5};

Complete example:

#include <iostream>
#include <string>
using namespace std;

struct Student {
    string name;
    int age;
    double marks;
};

int main() {
    Student student = {"Anjali", 15, 92.5};

    cout << "Name: " << student.name << "\n";
    cout << "Age: " << student.age << "\n";
    cout << "Marks: " << student.marks;

    return 0;
}

Output:

Name: Anjali
Age: 15
Marks: 92.5

Array of Structures

You can create an array of structures when you need to store information about multiple objects.

For example, we can store information about three students:

#include <iostream>
#include <string>
using namespace std;

struct Student {
    string name;
    int age;
};

int main() {
    Student students[3] = {
        {"Rahul", 14},
        {"Anjali", 15},
        {"Aman", 14}
    };

    for (int i = 0; i < 3; i++) {
        cout << "Name: " << students[i].name << "\n";
        cout << "Age: " << students[i].age << "\n\n";
    }

    return 0;
}

Output:

Name: Rahul
Age: 14

Name: Anjali
Age: 15

Name: Aman
Age: 14

Here:

Student students[3];

creates an array that can store three Student objects.

You can access each object using its index:

students[0]
students[1]
students[2]

Pointer to a Structure

A pointer can also store the address of a structure object.

For example:

Student* ptr = &student;

Here, ptr stores the address of the student object.

To access structure members through a pointer, use the arrow (->) operator.

ptr->name
ptr->age

Example:

#include <iostream>
#include <string>
using namespace std;

struct Student {
    string name;
    int age;
};

int main() {
    Student student = {"Rahul", 14};

    Student* ptr = &student;

    cout << "Name: " << ptr->name << "\n";
    cout << "Age: " << ptr->age;

    return 0;
}

Output:

Name: Rahul
Age: 14

The arrow operator -> is used instead of the dot operator when accessing members through a structure pointer.

Structure with a Function

A structure can also be passed to a function.

#include <iostream>
#include <string>
using namespace std;

struct Student {
    string name;
    int age;
};

void displayStudent(Student student) {
    cout << "Name: " << student.name << "\n";
    cout << "Age: " << student.age;
}

int main() {
    Student student = {"Rahul", 14};

    displayStudent(student);

    return 0;
}

Output:

Name: Rahul
Age: 14

A Simple Example

Let’s combine a structure with an array and a loop to display product information.

#include <iostream>
#include <string>
using namespace std;

struct Product {
    string name;
    double price;
};

int main() {
    Product products[3] = {
        {"Laptop", 45000},
        {"Mouse", 800},
        {"Keyboard", 1500}
    };

    for (int i = 0; i < 3; i++) {
        cout << products[i].name << " - ";
        cout << products[i].price << "\n";
    }

    return 0;
}

Output:

Laptop - 45000
Mouse - 800
Keyboard - 1500

Key Points to Remember

  • A structure groups different types of data together.
  • A structure object is created using the structure name.
  • Use the . operator to access members of a structure object.
  • An array of structures stores multiple structure objects.
  • A pointer can store the address of a structure object.
  • Use the -> operator to access members through a structure pointer.
  • Structures can also be passed to functions.

Mini Quiz

0%

C++ PROGRAMMING - QUIZ 12

1 / 5

Q1. What is the main purpose of a structure in C++?

2 / 5

Q2. Which keyword is used to create a structure in C++?

3 / 5

Q3. Which operator is used to access members of a structure object?

4 / 5

Q4. What is an array of structures used for?

5 / 5

Q5. Which operator is used to access structure members through a pointer?

Your score is

The average score is 0%

0%

Mini Project

Mini Project: Movie Information

Question:

Write a C++ program that stores and displays information about a movie using a structure.

  • Create a Movie structure with title, year, and rating.
  • Create a Movie object.
  • Store values in the structure members.
  • Display all movie information using the . operator.
  • Use appropriate data types for each member.
View Answer Code
#include <iostream>
#include <string>
using namespace std;

struct Movie {
    string title;
    int year;
    double rating;
};

int main() {

    Movie movie;

    movie.title = "The Lion King";
    movie.year = 2019;
    movie.rating = 8.5;

    cout << "Title: " << movie.title << "\n";
    cout << "Year: " << movie.year << "\n";
    cout << "Rating: " << movie.rating;

    return 0;
}

What’s Next?

In the next chapter, we will learn about C++ Classes and Objects, which are the foundation of object-oriented programming in C++.


Frequently Asked Questions (FAQs)

Q1. What are C++ Structures?

C++ Structures are user-defined data types that group related data of different types under one name.

Q2. How do you create a structure in C++?

Use the struct keyword followed by the structure name and its members, such as struct Student { string name; int age; };.

Q3. What is an Array of Structures in C++?

An Array of Structures in C++ stores multiple objects of the same structure type, making it useful for managing records such as multiple students or products.

Q4. How is a Structure Pointer in C++ used?

A Structure Pointer in C++ stores the address of a structure object and uses the -> operator to access its members.

Q5. What is the difference between . and -> in C++ Structures?

The . operator accesses members through a structure object, while -> accesses members through a pointer to a structure.

Written by Shubhranshu Shekhar, who has trained 20000+ students in coding.

Scroll to Top