How can GCC know argc if we did not specify it? Is there a similar mechanism to how GCC determine the number of elements of an array?