This is a question in reference to this question: What does (char *)0 mean in c?
There the answers slightly deviated away from explaining what exactly the answer was, but the final answer mentioned that it was a pointer to a character at address 0 and that it was null. This brought up two doubts for me.
In c, can we give char* 9 and say that it is a pointer to address 9? Won't we get any error or a warning?
Ok let's say that (char*) 0 is indeed a pointer to character at address 0, but what does this address 0 mean? I mean how can we say it's a null? In that case what would the value of (char*) 1 or (char*) 2 etc be?
Edit:
Just to put it here whether it helps or not. My initial search for this question occurred when I found out that the last argument in execl
linux system call was null and I saw a rather odd looking syntax for it: (char *) 0.
Thanks.