A structure in C++ stores together data elements under a single name. The data elements, also called data members, can be of different data types.
Tóm Tắt
Syntax
A structure is defined with:
- The
struct
keyword in the beginning. - Curly brackets
{
}
to define the body. - A semicolon
;
at the end.
struct name {
member1_type member1_name;
member2_type member2_name;
member3_type member3_name;
};
Example
The example below is a struct
with the name coder
:
struct
coder
{
long
id
;
char
name
[
30
]
;
char
username
[
15
]
;
}
;
This structure contains three members:
id
name
username
Declaring and Initializing Structure Variables
The members of a structure can be initialized inside the structure definition in C++11 and higher.
An example of declaring and initializing a structure variable:
#
include
<iostream>
struct
coordinates
{
int
x
;
int
y
;
}
;
int
main
(
)
{
struct
coordinates
c1
;
c1
.
x
=
2
;
c1
.
y
=
2
;
struct
coordinates
c2
=
{
0
,
1
}
;
std
::
cout
<<
"x1 = "
<<
c1
.
x
<<
", y1 = "
<<
c1
.
y
<<
"\n"
;
std
::
cout
<<
"x2 = "
<<
c2
.
x
<<
", y2 = "
<<
c2
.
y
<<
"\n"
;
return
0
;
}
The output will look like this:
x1 = 2, y1 = 2
x2 = 0, y2 = 1
Array of Structure
Like other primitive data types, we can create an array of structures.
An example of array of structure:
#
include
<iostream>
struct
coordinates
{
int
x
;
int
y
;
}
;
int
main
(
)
{
struct
coordinates
c
[
4
]
;
int
i
;
for
(
i
=
0
;
i
<
4
;
i
++
)
std
::
cin
>>
c
[
i
]
.
x
>>
c
[
i
]
.
y
;
for
(
i
=
0
;
i
<
4
;
i
++
)
{
std
::
cout
<<
"x"
<<
i
+
1
<<
"="
<<
c
[
i
]
.
x
<<
"\t"
;
std
::
cout
<<
"y"
<<
i
+
1
<<
"="
<<
c
[
i
]
.
y
<<
"\n"
;
}
return
0
;
}
Input:
1 0
1 2
1 1
0 2
Output:
x1 = 1 y1 = 0
x2 = 1 y2 = 2
x3 = 1 y3 = 1
x4 = 0 y4 = 2
Nested Structure
A structure’s variable can also be a member of, or nested in, another structure.
In the example below, a
DOB
structure is nested in acoder
structure:struct
coder
{
long
id
;
char
name
[
30
]
;
char
username
[
15
]
;
struct
DOB
{
int
month
;
int
day
;
int
year
;
}
d
;
}
bjarne
;
The
d
is the structure’s variable forstruct DOB
andbjarne
is the structure variable forstruct coder
.Members of a nested structure can be accessed using
var1.var2.member1
.Initializing a member of the structure
DOB
from the example above:bjarne
.
d
.
day
=
10
;