Vous êtes sur la page 1sur 6

Page 1 of 6

Structures
What is a Structure?
Structure is a collection of variables under a single name. Variables can be of
any type: int, float, char etc. The main difference between structure and array is
that arrays are collections of the same data type and structure is a collection of
variables under a single name.

How to declare and create a Structure


Declaring a Structure:
The structure is declared by using the keyword struct followed by structure name,
also called a tag. Then the structure members (variables) are defined with their
type and variable names inside the open and close braces { and }. Finally, the
closed braces end with a semicolon denoted as ; following the statement. The
above structure declaration is also called a Structure Specifier.
Example:
Three variables: custnum of type int, salary of type int, commission of type float
are structure members and the structure name is Customer. This structure is
declared as follows:

In the above example, it is seen that variables of different types such as int and
float
are
grouped
in
a
single
structure
name
Customer.
Arrays behave in the same way, declaring structures does not mean that memory
is allocated. Structure declaration gives a skeleton or template for the structure.
After declaring the structure, the next step is to define a structure variable.

Prepared By Sumit Kumar Gupta, PGT Computer Science

Page 2 of 6

How to declare Structure Variable?


This is similar to variable declaration. For variable declaration, data type is
defined followed by variable name. For structure variable declaration, the data
type is the name of the structure followed by the structure variable name.
In the above example, structure variable cust1 is defined as:

What happens when this is defined? When structure is defined, it allocates or


reserves space in memory. The memory space allocated will be cumulative of all
defined structure members. In the above example, there are 3 structure
members: custnum, salary and commission. Of these, two are of type in and one
is of type float. If integer space allocated by a system is 2 bytes and float four
bytes the above would allo9acter 2bytes for custnum, 2 bytes for salary and 4
bytes for commission.

How to access structure members in C++?


To access structure members, the operator used is the dot operator denoted by
(.). The dot operator for accessing structure members is used thusly:

structure variable name.member name


For example:
A programmer wants to assign 2000 for the structure member salary in the above
example of structure Customer with structure variable cust1 this is written as:

Nested Structures
A structure can be nested inside another structure.
Stuct addr
{
int houseno;
char area[26];
Prepared By Sumit Kumar Gupta, PGT Computer Science

Page 3 of 6
char city[26];
char state[26];
};
struct emp
{
int empno;
char name[26];
char desig[16];
addr address;
float basic;
};
emp worker ;
The structure emp h as been defined having several elements including a
structure address also. The elements address(of structure emp) is itself a
structure of type addr. While defining such structures, just make sure that innder
structure one defined before outer structure one defined before outer structures.

Structure and Arrays


The structure and the array both are c++ derived data types. While arrays are
collections of analogous elements, structures assembles dissimilar elements
under one roof.
Array and structure both combined together to form complex data objects. There
may be structures contained within an array; also there array element of a
structure.
Array of Structure
To declare 100- elements array of structure of type addr
addr mem_addr[100];
To create an array having structures emp type
Emp sales_emp[100];
Above declaration to create an array sales_emp to store 100 structures of emp
type.

Prepared By Sumit Kumar Gupta, PGT Computer Science

Page 4 of 6

Array Within Structures


A structure elements my be simple or complex . A complex structure may itself
be a structure or any array. When a structure elements happens to be an array it
is treated in the same way as array are treated. The only additional things to be
kept in mind is that to access it, its structure name followed by a (.) and the name
is to be given. For example consider structure ;

Struct student
{
Int rollno;
char name[21];
float marks[5]; //array of 5 floats
};
students learner;
The above declared statement variable learner is of structure type student that
contains an elements which is a n array of 5 floats to store marks of a students in
5 different subjects.

Passing Structures to Function


If you have a structure local to a function and you need to pass its values to
another function , then it can be achieved in two ways : (i) by passing individual
structure elements , and (ii) by passing the entire structure . Both the ways cab
be achieved by call by value as well as by call by reference method pa passing
variables.
Passing Structure Elements to Functions
When an elements of a structure is passed to a function , you are actually
passing the value of that element to the function Therefore , it just like passing a
simple variable. Consider following structure
Struct date {
short day;
shot month;
short year;
} Bdate;
`
Prepared By Sumit Kumar Gupta, PGT Computer Science

Page 5 of 6
Passing entire structure to Functions
Passing entire structure makes the most sense when the structure is relatively
compact. The entire structure can be passed to the function both ways by value
and by reference. Passing by value is useful when the original values are not
to be changed and passing by reference is useful when original values are to
be changed.
User Defined Data Types
C++ allows you to define explicitly new data type name by using the keyword
typedef doses not actually create a new data class, rather it defines a new
name for an exiting type. This can increase the potablity of a program as only the
typedef statements would have to be changed . Using typedef can also aid in
self- documenting your code by allowing ddescriptive name for the standard data
type. The syntax of the typedef statement is
Typedef type name ;

Use of typedef for declaring structures


The typedef function is used to declare the alias name for the structure type.
typedef structure result
{
} progress;
results report1;
progress report2
in this above program segment the usage of typedef defines a structure result
and an alias name of the same structure as progress.
The two structures report1 and report2 are declared accordingly of the same
type as result and progress are now alternative nomenclature for each other.

Enumerated data types


It is another way of defining data types. It includes all the probables list of values
that a data type can take. It has the following format for declaration;
Enum struc-name {v1 v2 ,v3, v3,v4..v n }

Prepared By Sumit Kumar Gupta, PGT Computer Science

Page 6 of 6

Practice Question Paper


1. What is a structure?
2. Define arrays of structures?
3. Differentiate between the following using examples
a. Simple structure
b. multiple structure
4. Explain the following with examples
a. Declaration of a structure
b. Definition of a structure variable
c. Accessing of a structure member
d. Initialization of a member within structures.
e. Arrays of structures.
f. Passing structures to functions
g. Use defined structure
6. Explain the usage of type def for declaring structure .
7.What are enumerated data type?
8. What are symbolic constants?
9. Define a structure for length and breadth of a rectangle of type float and refer
the same as rect.
10. Write a statement to assign a variable measure to length member of rect
structure variable.
11. The enumerated type is considered as an integer type . Comment on the
factual concern of the statement.
12. Write a program segment to declared and initialize an array of four structure
with name of the student age and marks in three subjects.

Prepared By Sumit Kumar Gupta, PGT Computer Science