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 展开
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 展开
2个回答
展开全部
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就不见啦
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询