Nested Structures Initialisation
Program to demonstrate the initialisation process of nested structures.
Source Code
|
Related (?) : |
Run Output
Code Understanding
struct Name { char fname[40]; char lname[40];};
Structure with two char array for first name (fname) and last name (lname)of a Name.
struct Person { Name name; int age; };
A structure named Person with nested structure Name with the instance name as name and an additional variable age.
Person p1={{“Raju”,”Verma”},40};
Here is how this kind of nested structure is initialised. Notice the use of additional curly braces for the nested portion. Remember that partial initialisation rules as specified in #2799 do apply on each structure.
cout<<p1.name.fname<<” “<<p1.name.lname <<“, “<<p1.age<<endl;
Here the nested structure is printed by accessing using the dot(.) operator one or more times as per nesting depth.
Notes
- For partial initialisation of nested structures the omission of trailing values are allowed on each structure basis. For e.g.
{{“Raju”,”Verma”}}; would be allowed, {40}; will not be allowed.
{{“Raju”}}; would be allowed, {{“Verma”}}; will not be allowed.
{{“Raju”},40}; will also be allowed
Common Errors
- Students are advised to count left curly braces and right curly braces to make a correct initialisation. They should be equal.
Suggested Filename(s): stru-nest-init.cpp,stru-ni.cpp
sunmitra| Created: 22-Jan-2018 | Updated: 22-Jan-2018|