黑马程序员技术交流社区

标题: 关于C语言入门的问题,有些浅显。。 [打印本页]

作者: 洋柿子    时间: 2015-5-20 14:23
标题: 关于C语言入门的问题,有些浅显。。
int main(){
}中的int 表示main函数的返回值为整形,main是主函数名称,()里应为主函数的参数,我想问的是()里的参数到底怎么用的?什么时候是空参数,有参数时是怎样的?C语言执行过程:源代码经过编译器编译,此时的函数库也会被编译成.o后缀目标文件吗,接着与函数库一起进行链接,怎么链接的?,最终形成.out可执行文件。
作者: gclforios    时间: 2015-5-20 14:53
问题一:参数怎用?
main()函数既可以是无参函数,也可以是有参的函数。对于有参的形式来说,就需要向其传递参数。但是其它任何函数均不能调用main()函数。当然也同样无法向main()函数传递,只能由程序之外传递而来。这个具体的问题怎样解决呢?
我们先看一下main()函数的带参的形式:
main(int argc,char *argv[])
{
.....
}
从函数参数的形式上看,包含一个整型和一个指针数组。当一个C的源程序经过编译、链接后,会生成扩展名为.EXE的可执行文件,这是可以在操作系统下直接运行的文件,换句话说,就是由系统来启动运行的。对main()函数既然不能由其它函数调用和传递参数,就只能由系统在启动运行时传递参数了;

    在编译连接好得到一个可执行文件test.exe后,将在系统执行这个可执行文件时,将参数一起传入,./test.exe a b c d

a b c d 分别为四个参数,其关系为 :

argc = 5
argv[0]=./test.exe
argv[1]=a
argv[2]=b
argv[3]=c
argv[4]=d
问题二:什么时候为参数?
当你不需要往main中传入参数时就就可以为空.


作者: 洋柿子    时间: 2015-5-20 15:31
谢谢,大神




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2