Wildcards in bash are very useful. For example the ls *.c command would list all files that end in .c. How does this work? The * wild card is expanded by bash into every possible character except the null character, not just a-z or 1–9 but all possible characters. The shell then interprets the command *.c as all files and directories that match the pattern .c, for example it would apply the command to the files apple.c banana.c and orange.c . In this case ls *.c would list all files and directories that end in .c.
Wild cards also work for directory paths, lets say you want to remove all the directories with a space in the middle you could type the remove command rm -r (with the -r option for recursive, so it gets all the sub-directories too), followed by * * (that is star space star). So the command rm -r * * would remove all those pesky directories with a space. As you can see you could do a lot of damage to your system if you where to accidentally type rm -r * as it would delete all directories and files in the current directory you are in and all its sub-directories.
There are many wildcards, the most common ones are: *, ?, and []. The question mark wildcard works much the same as the star wildcard, but its for a single character. The [] wildcard can contain a pattern such as: [a-z] for lowercase a-z, or it could be [[:lower:]] for the same. You could include number or letter ranges in the square brackets. You can also include special parameters such as [:lower:], [:upper:] or [:alpha:].
Wildcards can be combined to form powerful search parameters, for example if where where to type ls *[hi]* you would think that maybe it would list all the files and directories that have the word hi in the middle, but in fact it would list all files and directories that have an h or an i in the middle.
Wildcards can be tricky, but they are also very powerful. They will save you a lot of typing and time looking for files. They will allow you to apply complex expressions to multiple files. They will allow for quicker and faster iteration through a specified pattern and allow for complex file manipulation. Wildcards will become one of your favorite tools in bash.