Bird
Raised Fist0
C++programming~15 mins

Accessing structure members in C++ - Mini Project: Build & Apply

Choose your learning style10 modes available
Accessing structure members
📖 Scenario: You are creating a simple program to store and display information about a book in a library.
🎯 Goal: Build a program that defines a structure for a book, stores information in it, and prints the book's details by accessing its members.
📋 What You'll Learn
Define a structure named Book with members title, author, and year.
Create a variable of type Book and assign values to its members.
Access and print the members of the Book variable.
💡 Why This Matters
🌍 Real World
Structures help organize related data together, like storing details about books, students, or products in real applications.
💼 Career
Understanding how to define and access structures is fundamental for many programming jobs, especially in systems programming, game development, and software engineering.
Progress0 / 4 steps
1
Define the Book structure
Define a structure called Book with three members: title and author as std::string, and year as int.
C++
Hint

Use the struct keyword to define Book with the specified members.

2
Create a Book variable and assign values
Inside main(), create a variable named myBook of type Book. Assign "The Great Gatsby" to myBook.title, "F. Scott Fitzgerald" to myBook.author, and 1925 to myBook.year.
C++
Hint

Create a variable of type Book and use the dot . operator to assign values to its members.

3
Access and print the Book members
Use std::cout to print the book details in this exact format:
Title: The Great Gatsby
Author: F. Scott Fitzgerald
Year: 1925
Access the members of myBook using the dot operator.
C++
Hint

Use std::cout and the dot operator to print each member on its own line.

4
Run the program to display the book details
Run the program and ensure it prints exactly:
Title: The Great Gatsby
Author: F. Scott Fitzgerald
Year: 1925
C++
Hint

Make sure your output matches exactly, including capitalization and spacing.

Practice

(1/5)
1. What operator is used to access members of a structure variable in C++?
easy
A. Double colon (::)
B. Arrow operator (->)
C. Colon operator (:)
D. Dot operator (.)

Solution

  1. Step 1: Recall structure member access syntax

    In C++, to access a member of a structure variable, the dot operator (.) is used.
  2. Step 2: Differentiate from pointer access

    The arrow operator (->) is used when accessing members through a pointer, not a direct variable.
  3. Final Answer:

    Dot operator (.) -> Option D
  4. Quick Check:

    Structure member access = dot operator (.) [OK]
Hint: Use dot (.) for variables, arrow (->) for pointers [OK]
Common Mistakes:
  • Confusing dot (.) with arrow (->)
  • Using colon (::) which is for scope resolution
  • Using arrow (->) on non-pointer variables
2. Which of the following is the correct syntax to access member age of a structure variable person?
easy
A. person->age;
B. person::age;
C. person.age;
D. person:age;

Solution

  1. Step 1: Identify the variable type

    Since person is a structure variable (not a pointer), use the dot operator to access members.
  2. Step 2: Check syntax correctness

    Correct syntax is person.age;. The arrow operator (->) is for pointers, colons are invalid here.
  3. Final Answer:

    person.age; -> Option C
  4. Quick Check:

    Direct struct variable uses dot (.) [OK]
Hint: Use dot (.) for struct variables, arrow (->) for pointers [OK]
Common Mistakes:
  • Using arrow (->) on non-pointer variables
  • Using colon (:) or double colon (::) incorrectly
  • Missing semicolon at end
3. What will be the output of the following code?
#include <iostream>
struct Point {
  int x;
  int y;
};

int main() {
  Point p = {3, 4};
  std::cout << p.x + p.y << std::endl;
  return 0;
}
medium
A. 7
B. 34
C. 0
D. Compilation error

Solution

  1. Step 1: Understand structure initialization

    The structure Point is initialized with x=3 and y=4.
  2. Step 2: Calculate the output expression

    The code outputs p.x + p.y which is 3 + 4 = 7.
  3. Final Answer:

    7 -> Option A
  4. Quick Check:

    3 + 4 = 7 [OK]
Hint: Add members accessed by dot operator for result [OK]
Common Mistakes:
  • Concatenating numbers as strings (34)
  • Assuming default zero initialization
  • Confusing pointer access syntax
4. Identify the error in the following code snippet:
struct Car {
  int speed;
};

int main() {
  Car c;
  c->speed = 100;
  return 0;
}
medium
A. Missing semicolon after struct definition
B. Using arrow operator (->) on a non-pointer variable
C. Incorrect struct member name
D. No error, code is correct

Solution

  1. Step 1: Check variable type and operator

    The variable c is a struct variable, not a pointer.
  2. Step 2: Identify correct member access

    Using c->speed is invalid here; should use c.speed.
  3. Final Answer:

    Using arrow operator (->) on a non-pointer variable -> Option B
  4. Quick Check:

    Non-pointer struct uses dot (.) [OK]
Hint: Use dot (.) for variables, arrow (->) only for pointers [OK]
Common Mistakes:
  • Using arrow (->) on struct variables
  • Assuming arrow works for all struct access
  • Ignoring pointer vs variable difference
5. Given the following code, how can you correctly access the member name of the structure pointer ptr?
struct Student {
  std::string name;
  int id;
};

Student s = {"Alice", 101};
Student* ptr = &s;
// Access name here
hard
A. ptr->name;
B. ptr.name;
C. ptr::name;
D. *ptr.name;

Solution

  1. Step 1: Understand pointer member access

    When accessing members through a pointer, you can use the arrow operator (->) or dereference then dot ( (*ptr).member ).
  2. Step 2: Check each option

    ptr.name; is invalid syntax for a pointer. ptr->name; is the correct syntax using the arrow operator. ptr::name; incorrectly uses scope resolution operator. *ptr.name; is wrong due to operator precedence; it should be (*ptr).name;.
  3. Final Answer:

    ptr->name; -> Option A
  4. Quick Check:

    Pointer member access = arrow (->) or (*ptr).member [OK]
Hint: Use arrow (->) or dereference then dot ( (*ptr).member ) [OK]
Common Mistakes:
  • Using dot (.) directly on pointer
  • Forgetting to dereference pointer
  • Confusing pointer and variable access
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard