I know that one of the differences between classes and structs is that struct instances get stored on stack and class instances(objects) are stored on the heap.
Sinc
It's useful in practice to be able to allocate memory on the stack for some purposes, since those allocations are very fast.
However, it's worth noting that there's no fundamental guarantee that all structs will be placed on the stack. Eric Lippert recently wrote an interesting blog entry on this topic.