📖 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
Step 1: Recall structure member access syntax
In C++, to access a member of a structure variable, the dot operator (.) is used.
Step 2: Differentiate from pointer access
The arrow operator (->) is used when accessing members through a pointer, not a direct variable.
Final Answer:
Dot operator (.) -> Option D
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
Step 1: Identify the variable type
Since person is a structure variable (not a pointer), use the dot operator to access members.
Step 2: Check syntax correctness
Correct syntax is person.age;. The arrow operator (->) is for pointers, colons are invalid here.
Final Answer:
person.age; -> Option C
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
Step 1: Understand structure initialization
The structure Point is initialized with x=3 and y=4.
Step 2: Calculate the output expression
The code outputs p.x + p.y which is 3 + 4 = 7.
Final Answer:
7 -> Option A
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
Step 1: Check variable type and operator
The variable c is a struct variable, not a pointer.
Step 2: Identify correct member access
Using c->speed is invalid here; should use c.speed.
Final Answer:
Using arrow operator (->) on a non-pointer variable -> Option B
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
Step 1: Understand pointer member access
When accessing members through a pointer, you can use the arrow operator (->) or dereference then dot ( (*ptr).member ).
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;.
Final Answer:
ptr->name; -> Option A
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 unknownstrongwhile earning +1 Grip toward your certificate.