Note: I'm disregarding everything already said expect the OP.
WARNING! Technical Explanation Below! WARNING!
A structure is a blueprint and an object (an instance of a structure) is a house. The structure serves as a blueprint which determines how the house (the object) is built. A structure merely groups a bunch of object/variable declarations into one place as opposed to scattered declarations.
In programming terms, a structure is a guideline for the compiler which tells it where each data-member should be placed when an object of the structure is created. Because a structure is a layout template, it does not reserve any memory by itself. In reality, a structure acts as a layer on top of memory which outlines the position of each data-member. On the lower-level, a structure groups the data-member declarations, repositions each data-member, determines the mount of alignment padding between each data-member and then determines how much memory is required in total.
When an object is created, the compiler will allocate memory for that structure and will then use the structure as a guideline so it knows where to place each data-member. The compiler will use the same structure guideline to access the data-members.
In terms of usage, there's hundreds of uses. Normally, structures are seen from different perspectives. From the object-orientated perspective, a structure represents an object, and each data-member represents an attribute of that object. From a non-object-orientated perspective, a structure is merely a group of organised bytes and each data-member is sub-group of bytes.