c语言习题,我完全没头绪,命令行参数是什么东西啊??

#include<stdio.h>voidmain(intargc,char*argv[]){inti;char*p;printf("%d\n",argc);if(arg... # include <stdio.h>
void main(int argc,char *argv[])
{ int i; char *p;
printf("%d\n",argc);
if(argc>2) p=argv[1];
puts(p+1);
}
若运行该程序时,在命令提示符后输入('↙'表示回车换行符):
2-5 file1 file2 file3↙
则执行printf("%d\n",argc); 时,输出结果为( D )。
34 (A) 1 (B) 2 (C) 3 (D) 4
执行puts(p+1); 时,输出结果为( C )。
35 (A) file1 (B) file2 (C) ile1 (D) ile2
展开
 我来答
OliverXu
推荐于2017-11-25 · TA获得超过841个赞
知道小有建树答主
回答量:610
采纳率:0%
帮助的人:428万
展开全部
void main(int argc, char *argv[])这句话中括号中的int argc,char *argv[]是可以省略的,这是就是命令行参数,argc的值就是你命令行参数的项数,你是windows环境么?windows下编译好一个程序是直接双击运行,但是你找到文件目录,可以从控制台输入文件名执行的,那么你输入在控制台的内容就叫做命令行参数,包括文件名和后面的内容,以空格隔开,比如你这个程序叫2-5.那么当你在控制台输入2-5的时候,argc就为1,当你输入2-5 file1的时候,argc就为2,现在知道为什么argc为4了吧。至于argv[],这是一个字符串数组,因为argc为4,所以定义了一个字符串数组为argv[4],有四个元素,分别为argv[0],argv[1],argv[2],argv[3],p = argv[1]。就是file1啦,puts(p+1),地址向右偏移一位,所以前面的f就不见啦
刀下风
2012-10-15 · 超过26用户采纳过TA的回答
知道答主
回答量:129
采纳率:0%
帮助的人:56.8万
展开全部
所谓的命令行参数就是传递给main函数的参数一般都是固定形式 main(int argc,char *argv[ ])
第一个参数表示参数的个数,第二个参数是一个字符串数组表示参数项.

其实不懂的话打开vc然后把这个程序写上,然后单步调试运行一下就明白了.

学习要掌握方法哦。 .
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式