The advantage of this representation is that some card operations, such as comparison, are easy to perform. The disadvantages are that the program must convert between the internal and external card representations for input and output, and the suit of card may be more difficult to determine. Yet a third possible representation is two parallel arrays, one containing a character for the suit and the other containing an integer or string for the face value. For both decks and hands of cards, you will need to represent how cards are removed. Two approaches are marking and an integer position variable.
Marking involves putting some empty value in the deck, in the place previously occupied by a card.
The position-variable approach involves decrementing an integer variable each time a card is removed from the deck. The same applies for a deck represented as two parallel arrays. Making these kinds of data representation decisions is a very common part of program design. A trade off refers to the fact that in one design you trade some operations being easier against other operations being harder.