c语言中main函数用法及知识点总结

 更新时间:2021年10月05日 08:40:38   作者:小妮浅浅  
在本篇文章里小编给大家分享的是一篇关于c语言中main函数用法及知识点总结内容,有需要的朋友们可以跟着学习参考下。

1、main函数是C程序的入口函数,即程序的执行从main函数开始,其他函数的调动也直接或间接地在main函数中调用。

2、main函数的返回值用于解释程序的退出状态。

若返回0,则表示程序正常退出。返回其他数字的含义由系统决定。通常返回非零代表程序异常退出。

实例

#include <stdio.h>
#include <string.h>
 
int main(int argc, char **argv) {
int i = 0;
printf("The program name is %s\n", argv[0]);
printf("The command line has %d argument: \n", argvc - 1);
for (i = 1; i < argc; i++) {
printf("%s ", argv[i]);
}
return 0;
}

知识点扩充:

每一C程序都必须有一main()函数,可以根据自己的爱好把它放在程序的某个地方。有些程序员把它放在最前面,而另一些程序员把它放在最后面,无论放在哪个地方,以下几点说明都是适合的。

在Turbo C2.0启动过程中,传递main()函数三个参数:argc,argv和env。

* argc:整数,为传给main()的命令行参数个数。

* argv:字符串数组。

char* argv[],我们可以看出,argv的类型是char* [],即是一个指向字符数组的指针,所以我们还可以写作:char** argv。
在DOS 3.X版本中,argv[0]为程序运行的全路径名;

对DOS 3.0以下的版本,argv[0]为空串("")。argv[1]为在DOS命令行中执行程序名后的第一个字符串;argv[2]为执行程序名后的第二个字符串;...

argv[argc]为NULL。

*env:字符串数组。env[]的每一个元素都包含ENVVAR=value形式的字符串。其中ENVVAR为环境变量如PATH或87。value为ENVVAR的对应值如C:\DOS,C:\TURBOC(对于PATH)或YES(对于87)。

TurboC2.0启动时总是把这三个参数传递给main()函数,可以在用户程序中说明(或不说明)它们,如果说明了部分(或全部)参数,它们就成为main()子程序的局部变量。 请注意:一旦想说明这些参数,则必须按argc,argv, env的顺序,如以下的例子:

main()
main(int argc)
main(int argc, char *argv[])
main(int argc, char *argv[], char *env[])

其中第二种情况是合法的,但不常见,因为在程序中很少有只用argc,而不用argv[]的情况。以下提供一样例程序EXAMPLE.EXE, 演示如何在main()函数中使用三个参数:

/*program name EXAMPLE.EXE*/
#include
#include
main(int argc,char *argv[],char *env[])
{
int i;
printf("These are the %d command-line arguments passed to main:\n\n", argc);
for(i=0; i<=argc; i++)
printf("argv[%d]:%s\n", i, argv[i]);
printf("\nThe environment string(s)on this system are: \\n\n");
for(i=0; env[i]!=NULL; i++)
printf(" env[%d]:%s\n", i, env[i]);
}

如果在DOS提示符下,按以下方式运行

EXAMPLE.EXE: C:\example first_argument "argument with blanks" 3 4"last butone" stop!

到此这篇关于c语言中main函数用法及知识点总结的文章就介绍到这了,更多相关c语言中main函数是什么内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++继承介绍

    C++继承介绍

    C++继承可以是单一继承或多重继承,每一个继承连接可以是public,protected,private也可以是virtual或non-virtual
    2013-01-01
  • C++输出问题:保留两位小数

    C++输出问题:保留两位小数

    这篇文章主要介绍了C++输出问题:保留两位小数方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • C++统计软件使用时间代码示例

    C++统计软件使用时间代码示例

    这篇文章主要介绍了C++统计软件使用时间的小程序,大家可以参考使用
    2013-11-11
  • 利用C语言实现顺序表的实例操作

    利用C语言实现顺序表的实例操作

    顺序表是线性表中的一种重要的数据结构,也是最基础的数据结构,所以他不仅是学习中的重点,也是应用开发非常常用的一种数据结构。这篇文章介绍如何利用C语言实现顺序表。
    2016-08-08
  • C语言结构体数组同时赋值的另类用法

    C语言结构体数组同时赋值的另类用法

    今天小编就为大家分享一篇关于C语言结构体数组同时赋值的另类用法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • QT打包发布全流程(图文教程)

    QT打包发布全流程(图文教程)

    本文主要介绍了QT打包发布全流程,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • c++ Protobuf解决数据传输瓶颈面试精讲

    c++ Protobuf解决数据传输瓶颈面试精讲

    这篇文章主要介绍了c++ Protobuf解决数据传输瓶颈利器面试精讲,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • C实现的非阻塞方式命令行端口扫描器源码

    C实现的非阻塞方式命令行端口扫描器源码

    这篇文章主要介绍了C实现的非阻塞方式命令行端口扫描器源码,对于大家理解C端口扫描器有很大帮主,需要的朋友可以参考下
    2014-07-07
  • C++异常处理方式实例详解(超级详细!)

    C++异常处理方式实例详解(超级详细!)

    程序有时会遇到运行阶段错误,导致程序无法正常执行下去,c++异常为处理这种情况提供了一种功能强大的而灵活的工具,下面这篇文章主要给大家介绍了关于C++异常处理方式的相关资料,需要的朋友可以参考下
    2023-04-04
  • QT获取显示当前时间和日期的方法(用QTime,QDate和QDateTime)

    QT获取显示当前时间和日期的方法(用QTime,QDate和QDateTime)

    获取当期日期时间在我们日常开发中经常会遇到,下面这篇文章主要给大家介绍了关于QT获取显示当前时间和日期的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08

最新评论