Diff between grep .* file name and grep '.*' filename

Hi,

Can anyone let me know what is difference between

grep .* foo.c 

grep '.*' foo.c

I am not able to understand what is exact difference.

Thanks in advance

Looks like a homework question

The '*' is not expanded by the shell into filenames. *,? and other characters in the shell are metacharacters, they represent something "beyond" themselves as basic characters - in this case * is a wild card for filenames.

If this is homework post any followups in the homework forum. It has different rules.