主函数main()的参数和函数main()的返回值以及define宏定义的东西

先说明define宏是在编译时进行替换的 不分配内存空间
带参数的宏定义 递归只替换一次 否则一直替换就会出现意外结果
宏中的参数只是进行简单的替换 宏名没有数据类型
主函数main
在c语言中 把main()函数作为操作系统调用的函数来处理的 既然main()函数由操作系统来调用 自然也应带参数并应该能在操作系统下向main()函数提供实参
在操作系统下 总是以命令行的方式进行工作的 命令行方式 指的是在操作系统下用户通过键盘输入命令和相应参数来完成一定的功能操作方式 命令行的操作命令一般有如下的形式
命令名 参数1 参数2 参数3 ····(回车)
main()函数的实参正是以这种命令行方式传递的
mian()函数在c语言中 可以有如下三个形参 (注意:不能嵌套定义函数 c/c++)
mian(int argc,char *argv[],char env[ ])
习惯上是 也可以用其他变量名(标识符) 但是数据类型是确定的 一个整型 两个字符型数组 指针类型 字符数组指针也可以用来指向多个字符串
参数argc的值是命令行中可执行文件名和参数的个数的总和 参数argv 用以指向可执行文件名和各参数的字符串的指针 参数env用于访问当前dos环境下设置的参数 它指向环境设置字符串数组的指针
例如 某c程序经编译和连接后产生可执行文件 sam.exe 他的主函数 有如下形式
int main(int argc,char *argv[])
{
···
}
为执行sam.exe 文件在dos状态下输入命令行
sam.exe abcd ABCD def (回车)
则系统将命令行参数传递给argc 和argv 也就是argv[0]指向字符串(文件名)“sam.exe”
···
argv[4]指向空指针
argc=4
为主函数传递实参的第二种方式是在 c的集成环境下进行 在运行程序之前 先要将主函数的参数 置入菜单 run/arguments 的对话框中 (无需输入任何可执行文件名)然后运行程序 这时 参数会自动传递给主函数显然在集成环境下操作要比在dos环境下操作简单

main()作为函数也有调用问题
对main函数的调用者是操作系统 有调用就有返回的问题 应该使用return语句
函数main()是整型函数返回整型值 这个值返回到调用它的操作系统 对于dos 返回值为0 表示程序正常结束 返回其他任何值 均表示程序非正常结束
对于没有说明为 void类型的main()函数 如果函数中没有return语句 在编译时 系统留下warning 即使是void类型的main()也可以使用return语句

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值