C语言二级考试里面的一个题目,请大家分析下。

EastonSoft 2011-03-06 05:47:57

#include <stdio.h>
main(argc, argv)int argc;

char *argv[];
{
int i;
printf("%d\n", argc);
}


请各位大侠赐教下此程序什么意思。麻烦注释下。我在试卷里面看到的一个题目,老师没讲过这样子的。书上也没见过。
这个程序在DOS下输入【文件名 参数】可以得出结果。
如:将程序放到C盘的User\当前用户 ,文件编译后保存为t.exe文件。
在DOS下输入t to meet me后得到的结果是4。请问这个4怎么来的?
...全文
418 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
kent0122 2011-03-10
  • 打赏
  • 举报
回复
恩 这个表达方式已经过时了 论理计算机二级考试不会这样考的呀
EastonSoft 2011-03-10
  • 打赏
  • 举报
回复
说实话,我对主函数传参数确实不太了解。老师根本就没说。哪位高手能给小弟解释下。
zjmcly 2011-03-09
  • 打赏
  • 举报
回复
这种格式没见过啊
Meteor_Code 2011-03-09
  • 打赏
  • 举报
回复
主函数
Meteor_Code 2011-03-09
  • 打赏
  • 举报
回复
这个是c语言啊,和正常
#include <stdio.h>
main(argc, argv)
int argc;
char *argv[];
{
int i;
printf("%d\n", argc);
}
类型声明没有方在参数列表里
c/c++都可以这么写
至于参数的个数,难道楼主不知道住函数参数是怎么回事情吗??
小驴 2011-03-09
  • 打赏
  • 举报
回复
呵呵....我觉得是不是印错了什么的,那种格式真的没有见过
ancjf__ 2011-03-09
  • 打赏
  • 举报
回复
古老的c语言了,应该比89标准还要老了
cao_julians 2011-03-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 proghua 的回复:]
这是K&R C的函数声明方式,现在都用ANSI C
[/Quote]
==================
顶!
还用这种形式的考题啊,不是误人子弟,而是误人类子孙啦
lly212 2011-03-08
  • 打赏
  • 举报
回复
int argc 参数个数
char **argv argv[0] 第一个参数 argv[1] 第二个参数 .....
AnYidan 2011-03-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 proghua 的回复:]
这是K&R C的函数声明方式,现在都用ANSI C
[/Quote]

C 的二级考试考种题,出题人脑子有水!!鄙视之
EastonSoft 2011-03-08
  • 打赏
  • 举报
回复
搞错了,*argv[]看定义应该是一个指针数组,为什么可以动态改变数组长度?
这个我知道了,这是使用DOS命令方式传数组是吧?
EastonSoft 2011-03-08
  • 打赏
  • 举报
回复

#include <stdio.h>
main(int argc,char *argv[])
{
int i;
printf("%d\n", argc);
}

哪位大哥能给我解释下 argc为什么可以存储参数个数? *argv[]看定义应该是一个指针数组,为什么可以动态改变数组长度?
EastonSoft 2011-03-08
  • 打赏
  • 举报
回复
悲哀了,这种考试有意义么?
EastonSoft 2011-03-08
  • 打赏
  • 举报
回复
太多高手了。
chenbin200818 2011-03-07
  • 打赏
  • 举报
回复
也建议楼主在linux下 学习 编程
chenbin200818 2011-03-07
  • 打赏
  • 举报
回复
漂过 建议 楼主多看看c语言的书 教科书除外
长安宁 2011-03-07
  • 打赏
  • 举报
回复
#include <stdio.h>
main(argc, argv)int argc;char *argv[];
{
int i;
printf("%d\n", argc);
}

这样就清楚了,我也都看到这样的声明

p307969066 2011-03-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 proghua 的回复:]
这是K&R C的函数声明方式,现在都用ANSI C
[/Quote]

UP
梦想照进灵魂 2011-03-07
  • 打赏
  • 举报
回复
是main函数的一种声明方式
1.首先main函数也是函数,也有传入形参和返回值
2.t to meet me 为4个参数 分别是t--文件名 to--传入参数1 meet--传入参数2 me--传入参数3

#include <stdio.h>
int argc; //声明全局变量
char *argv[];
main(argc, argv) //argc为参数个数 argv[]为各参数,其中argv[1]为执行文件名
{
int i;
printf("%d\n", argc);
}


建议楼主看下C primer plus
  • 打赏
  • 举报
回复
在DOS中命令行通过argc,argv传递参数
argc表示从控制台得到的参数的个数,其中第一个参数是程序名,argv[0~3]依次是程序名, 参数1, 2.
在VC6中:工程->debug / program arguments 输入xxx.exe 1.txt 则lpCmdLine为1.txt
加载更多回复(10)

70,037

社区成员

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

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