0% found this document useful (0 votes)
33 views22 pages

ch09 Records (Structs)

This chapter discusses records (structs) in C++. A struct allows the creation of user-defined data types that group together data of different types under a single name. The chapter covers defining and declaring structs, accessing struct members, assigning struct variables, passing structs to functions, nesting arrays and structs within structs, and comparing struct variables.

Uploaded by

Anas Sha'arani
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views22 pages

ch09 Records (Structs)

This chapter discusses records (structs) in C++. A struct allows the creation of user-defined data types that group together data of different types under a single name. The chapter covers defining and declaring structs, accessing struct members, assigning struct variables, passing structs to functions, nesting arrays and structs within structs, and comparing struct variables.

Uploaded by

Anas Sha'arani
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 22

Chapter 9:

Records (structs)
Objectives
• In this chapter, you will:
– Learn about records (structs)
– Examine various operations on a struct
– Manipulate data using a struct
– Learn about the relationship between a struct
and functions
– Examine the difference between arrays and
structs

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 2


Objectives (cont’d.)

– Discover how arrays are used in a struct


– Learn how to create an array of struct items
– Learn how to create structs within structs

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 3


Records (structs)
• struct: collection of a fixed number of
components (members), accessed by name
– Members may be of different types
• Syntax:

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 4


Records (structs) (cont’d.)
• A struct is a definition, not a declaration
– Must declare a variable of that type to use it

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 5


Records (structs) (cont’d.)

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 6


Accessing struct Members
• Syntax to access a struct member:

• The dot (.) is called the member access


operator

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 7


Accessing struct Members (cont’d.)
• To initialize the members of newStudent:
newStudent.GPA = 0.0;
newStudent.firstName = "John";
newStudent.lastName = "Brown";

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 8


Assignment
• Value of one struct variable can be
assigned to another struct variable of the
same type using an assignment statement
• The statement:
student = newStudent;
copies the contents of newStudent into
student

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 9


Assignment (cont’d.)
• The assignment statement:
student = newStudent;

is equivalent to the following statements:


student.firstName = newStudent.firstName;
student.lastName = newStudent.lastName;
student.courseGrade = newStudent.courseGrade;
student.testScore = newStudent.testScore;
student.programmingScore = newStudent.programmingScore;
student.GPA = newStudent.GPA;

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 10


Comparison (Relational Operators)
• Compare struct variables member-wise
– No aggregate relational operations allowed
• To compare the values of student and
newStudent:

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 11


Input/Output
• No aggregate input/output operations on a
struct variable
• Data in a struct variable must be read or
written one member at a time
• Example: output newStudent contents

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 12


struct Variables and Functions
• A struct variable can be passed as a
parameter by value or by reference
• A function can return a value of type struct

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 13


Arrays versus structs

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 14


Arrays in structs

• Two items are associated with a list:


– Values (elements)
– Length of the list
• Define a struct containing both items:

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 15


Arrays in structs (cont’d.)

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 16


Arrays in structs (cont’d.)

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 17


structs in Arrays

• Example:

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 18


structs in Arrays (cont’d.)

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 19


structs within a struct

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 20


Summary
• struct: collection of a fixed number of
components
• Components can be of different types
– Called members
– Accessed by name
• struct is a reserved word
• No memory is allocated for a struct
– Memory when variables are declared

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 21


Summary (cont’d.)
• Dot (.) operator: member access operator
– Used to access members of a struct
• The only built-in operations on a struct are the
assignment and member access
• Neither arithmetic nor relational operations are
allowed on structs
• A struct can be passed by value or reference
• A function can return a value of type struct
• structs can be members of other structs

C++ Programming: From Problem Analysis to Program Design, Seventh Edition 22

You might also like