大二时,出学51单片机时,经常写程序然后烧录程序,免不了去借鉴一些大佬的代码,但有些代码的主函数在当时的我看起来很奇怪,因为那时学的少,所以时常不敢于借鉴。例如int main(int argc,char *argv[])里面的一大长串,实在让当时还没有学过指针的我直接选择关闭网页。
原因在于我们初学C语言以及用单片机写程序时,习惯这样写主函数:
void main()
{
}
这样写固然简洁,但也让我们丢掉了一些知识——其实主函数可以是有返回值和参数的,例如一些CSDN的代码时可以看到是这样书写主函数的
int main(int argc, char *argv[])
{
return 0;
}
main函数可以带参数,这个参数可以认为是C语言规定的 main函数的形式参数。
继续思考会发现,程序运行中,main函数明明是第一个执行的函数,作为第一个执行的函数,他不能被其它函数调用,更不可能在程序内被其他函数并调用赋予形参值。毕竟我们没见过哪个函数能书写成以下这种形式对吧(。・∀・)ノ:以下错误赋值示范。
void function()
{
int a;char b[5];
main(a,b);//程序是从main开始执行,这样写,调用main函数赋值不出BUG怪了。
}
那么问题来了,主函数main“()”里的参数究竟是什么呢?他们是如何被赋形参值的,在内存中的地址又是什么呢呢?
-------------------------------------------------------------------------------------------------------------------------------
在学习了指针后,我们探讨这两个参数的实际意义以及如何应用。
首先,让我们观察主函数内"(