- A structure in C is a collection of items of different types. You can think of a structure as a "record" is in Pascal or a class in Java without methods.
- Structures, or structs, are very useful in creating data structures larger and more complex than the ones we have discussed so far.
- Simply you can group various built-in data types into a structure.
- Object conepts was derived from Structure concept. You can achieve few object oriented goals using C structure but it is very complex.
Following is the example how to define a structure.
Now you have a new datatype called student and you can use this datatype define your variables of student type:
Another way to declare the same thing is:
All the variables inside an structure will be accessed using these values as student_a.firstName will give value of firstName variable. Similarly we can aqccess other variables.
Structure Example:
Try out following example to understand the concept:
This will produce following results:
Pointers to Structs:
Sometimes it is useful to assign pointers to structures (this will be evident in the next section with self-referential structures). Declaring pointers to structures is basically the same as declaring a normal pointer:
To dereference, you can use the infix operator: ->.
typedef Keyword:
There is an easier way to define structs or you could "alias" types you create. For example:
Now you can use student directly to define variables of student type without using struct keyword. Following is the example:
You can use typedef for non-structs:
x, y and z are all pointers to long ints
Unions Datatype:
Unions are declared in the same fashion as structs, but have a fundamental difference. Only one item within the union can be used at any time, because the memory allocated for each item inside the union is in a shared memory location.
Here is how we define a Union
We use union in such case where only one condition will be applied and only one variable will be used.
Conclusion:
- You can create arrays of structs.
- Structs can be copied or assigned.
- The & operator may be used with structs to show addresses.
- Structs can be passed into functions. Structs can also be returned from functions.
- Structs cannot be compared!
- Structures can store non-homogenous data types into a single collection, much like an array does for common data (except it isn't accessed in the same manner).
- Pointers to structs have a special infix operator: -> for dereferencing the pointer.
- typedef can help you clear your code up and can help save some keystrokes.
No comments:
Post a Comment