main函数参数的一点疑问

kpax999 2007-02-07 08:23:46
#include "stdio.h"
main(int i,int j)
{
printf("i=%dj=%d",i,j);
}

生成 a.exe
为什么在cmd 命令行下打 a.exe 1 2 为什么都不显示?
...全文
701 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xyxfly 2007-02-07
  • 打赏
  • 举报
回复
argc
表示的是参数的个数(包括程序名本身)

比如 程序.exe a b c

argc = 4
argv[1] a
...
wx214083 2007-02-07
  • 打赏
  • 举报
回复
参数是从shell那里拿到的,ls正解
kpax999 2007-02-07
  • 打赏
  • 举报
回复
哦 我懂了 ^^
狐帝 2007-02-07
  • 打赏
  • 举报
回复
argc和argv都是操作系统传给应用程序的。应用程序的C引导代码会从操作系统提供的进程控制块中找到命令行参数,然后计算出这些参数的个数,作为argc传递给main。
kpax999 2007-02-07
  • 打赏
  • 举报
回复
哦 原来这样

int main(int argc,char *argv[])那么请问 这里的int argc是什么传进来的呢???? 我看了上面的 只有传如 char *argv[]啊????
doubhor 2007-02-07
  • 打赏
  • 举报
回复
main函数是编译器规定的一个函数,它的参数接口定义是规定好的,编程时要么使用规定的参数,要么不使用参数。
我们在编程时不能修改main的参数类型。

xyxfly 2007-02-07
  • 打赏
  • 举报
回复
在前面课程的学习中,对main()函数始终作为主调函数处理,也就是说,允许main()调用其它函数并传递参数。事实上,main()函数既可以是无参函数,也可以是有参的函数。对于有参的形式来说,就需要向其传递参数。但是其它任何函数均不能调用main()函数。当然也同样无法向main()函数传递,只能由程序之外传递而来。这个具体的问题怎样解决呢?
我们先看一下main()函数的带参的形式:
main(argc,argv)
int argc,char *argv[];
{
.....
}
从函数参数的形式上看,包含一个整型和一个指针数组。当一个C的源程序经过编译、链接后,会生成扩展名为.EXE的可执行文件,这是可以在操作系统下直接运行的文件,换句话说,就是由系统来启动运行的。对main()函数既然不能由其它函数调用和传递参数,就只能由系统在启动运行时传递参数了。
在操作系统环境下,一条完整的运行命令应包括两部分:命令与相应的参数。其格式为:
命令参数1参数2....参数n
此格式也称为命令行。命令行中的命令就是可执行文件的文件名,其后所跟参数需用空格分隔,并为对命令的进一步补充,也即是传递给main()函数的参数。
命令行与main()函数的参数存在如下的关系:
设命令行为:program str1 str2 str3 str4 str5

楼主可以自己baidu一下 :)
xyxfly 2007-02-07
  • 打赏
  • 举报
回复
正解了

main函数的参数不能自己修改的
kpax999 2007-02-07
  • 打赏
  • 举报
回复
没看明白,我想知道 我上面那个哪部分弄错了
du51 2007-02-07
  • 打赏
  • 举报
回复
#include<stdio.h>
#include<stdlib.h>
int main(int argc,char *argv[])
{
int i;
if(argc<2)return 1;
else
{
for(i=1;i<argc;++i)
printf("%d\n",atoi(argv[i]));
}
return 0;
}

70,014

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧