Every time I compile a C program, say with the **cc** compiler, I get an executable in the current directory. Now if I want to run it, instead of typing out just `a.out` or `name_of_executable`, I have to prefix that with this combination `./a.out`.

I understand the meaning behind `.` (link to the current directory) and `..` (link to its parent directory), also that `/` is a separator between directory names.

But what is the meaning of `./`? Is it just a formal way to separate between referring to a name of something, and the intention to run that something (because you can't have `/` in your filename)?