食品行业网站开发,怎么制作网站?,制作人漫画,有没有建筑学做区位分析的网站提到C语言的函数#xff0c;有太多内容要讲#xff0c;今天我们要看的是main()函数。 main()函数时程序的入口点#xff0c;任何程序都要有main()函数#xff0c;一般大家都怎么写main()函数啊#xff1f; main(); void main(); void main(void); int main(); int main(vo… 提到C语言的函数有太多内容要讲今天我们要看的是main()函数。 main()函数时程序的入口点任何程序都要有main()函数一般大家都怎么写main()函数啊 main(); void main(); void main(void); int main(); int main(void); int main(int argc,char * argv[]); 好像哪种都可以啊是这样吗好像编译器从没报过错啊这时因为编译器对main()函数的扩展如果编译器不支持这块则有可能会报错而标准的写是什么呢有两种 int main(void); int main(int argc,char *argv[]); 有的同学做过单片机好像都是main()啊也没问题啊这时因为单片机程序中没人调用main()函数直接从main()函数调用完了没返回值。而对我们嵌入式linux C 呢这里是有操作系统的是会调用main()函数的所以这里一般会有返回值所以 int main(int argc,char *argv[])是最标准的写法。我们今天要讲的就是int main(int argc,char *argv[])! argc是什么是参数的个数什么参数是我们执行程序时所附给的参数argv[]是什么是存放参数的数组argv[0]是什么呢是我们执行的程序例如 ./a.out 。我们下面编写程序看函数时如何调用参数的 [cpp] view plaincopy #include stdio.h int main(int argc, char *argv[]) { int i; for(i 0;i argc;i) printf(%s\n,argv[i]); return 0; } 执行结果如下 [cpp] view plaincopy fsubuntu:~/qiang/hanshu$ gcc -o 1 1.c fsubuntu:~/qiang/hanshu$ ./1 xiao zhi qiang ./1 xiao zhi qiang fsubuntu:~/qiang/hanshu$ 大家可以看到参数被存在什么位置是怎么存放的。 那我们能不能对传入的参数进行运算呢当然可以了比如下面 传入参数 ./ 1 30 50将30和50相加。看程序 [cpp] view plaincopy include stdio.h int tt(char *p) { int sum 0; while(*p) sum sum*10 *p -0; return sum; } int main(int argc, char *argv[]) { int j; int count 0; for(j 1;j argc;j) { count tt(argv[j]); } printf(%d\n,count); return 0; } 执行结果如下 [cpp] view plaincopy fsubuntu:~/qiang/hanshu$ ls 1 1.c hanshu hashu.c fsubuntu:~/qiang/hanshu$ ./hanshu 30 50 80 fsubuntu:~/qiang/hanshu$ 是可以的。 当然这里给大家介绍一个将字符数字转化成整型数字的方法把上面写得程序给大家看看 [cpp] view plaincopy int tt(char *p) { int sum 0; while(*p) { sum * 10; sum (*p) -0; } return sum; } 就是 8 - 0 8ASCII码值相减我们的目的是得到8而不是将字符8转化成整数8这时没法转换的因为8是字符存放的是ASCII码是56所以是没法转化成int数据的但我们可以利用上面的方法得到8大家要清楚这一点