C语言中的入口函数是?具体参数是?

Python08

C语言中的入口函数是?具体参数是?,第1张

经常看到C语言的main函数定义为:

int main(int argc, char *argv[]),但是在函数体中经常是根本不用main函数中的这两个参数,这两个参数用于在运行程序时,从外部给程序传递参数,其中argc中保存了参数的个数,argv中分别保存了各个参数.

例如一个程序的main()函数头部形如int main(int argc, char *argv[]),编译链接后生成的可执行文件名为a.exe,那么请注意下面的调用:

a.exe abc def

在上面的命令行中,a.exe是要运行的程序名称,后面的abc和def就是传入程序的两个参数,这两个参数就通过argc和argv传入程序,注意这些参数都是字符串。

通过上面的调用,在这个程序中,argc=3,a.exe是第一个参数,这个字符串将保存在argv[0]中,abc和def分别是第二和第三个参数,它们分别被保存在argv[1]和argv[2]中

要知道main函数也是由其他的程序调用的。

我们编写的程序,最终是不存在所谓的函数名的,有的只有内存单元地址0xffeedd00.

我们的程序执行时,程序加载到内存,比方说整个程序所占用的内存范围是0xffee0000 ~ 0xffeedd00,这么多。

假设程序有一个小函数fun(),那么它的范围可能是0xffee0000~0xffee00ff。

那么函数fun()的入口地址是多少? 0xffee0000。。

那么函数名fun实际上就是0xffee0000的别称。

你用一个指针指向这个函数,那么你把 指针 = 函数名,实际就是把0xffee0000这个内存单元的地址给指针p。

所以,结论是:

函数名 是 程序在执行时, 函数所占内存单元块的 首地址 的别称。