c语言中argc和argv是什么意思?

作者&投稿:卢看 (若有异议请与网页底部的电邮联系)
C语言中的argc与argv的可执行文件的参数是什么意思?~

类似linux shell里面使用的指令的格式
比如说,我执行cp 123.c 456.c(将123.c拷贝为456.c)
这样在windows相当于执行了cp.exe 123.c 456.c,(假设window)即调用了cp.exe这个文件,并把123.c 456.c作为参数传入其中。
而在编译之前cp.exe应当是一个.c文件,而其中的main函数为int main(int argc, char** argv);
这样由于指令为cp.exe 123.c 456.c,main函数中argc就为3(3个参数),argv[0]="cp.exe",argv[1]="123.c",argv[2] = "456.c",这样我们可以在main函数中对于这些参数进行处理,也就是可以这样实现cp(拷贝这个功能)。
而你说的也类似,相当于传入那几个参数,并在函数中处理参数,并实现了相应的功能。

argc是你主程序参数的个数。

argv[0]是你编译出来执行时候程序的名字。
argv[1].....是你主程序需要的参数。
举例说明:如下程序 aa.c
#include
#include
#include
int main(int argc, char *argv[])
{
printf("%d
",argc);
printf("%s
",argv[0]);
printf("%s
",argv[1]);
printf("%s
",argv[2]);
return 0;
}
编译: gcc -o hello aa.c (也就是编译出来的执行文件叫hello,这是linux上的编译方式)
执行: hello aa bb
结果:
2
hello
aa
bb

do you understand???c is easy in fact!!

argc 是 argument count的缩写,表示argv这个二级指针指向的内存区域中保存的由stub写入的有效命令行参数的个数.

argv 是 argument vector的缩写,表示传入main函数的参数序列或指针,并且第一个参数argv[0]一定是程序的名称,并且包含了程序所在的完整路径,所以确切的说需要输入的main函数的参数个数是argc-1个。

扩展资料 

argc和argv的使用:

#include<stdio.h>

int main(int argc,char *argv[])

{

if(argc==1||argc>2)

printf("请输入想要编辑的文件名如:fillname");

if(argc==2)

printf("编辑%s
",argv[1]);

return 0;

}

参考资料来源:百度百科—argc argv



argc在C语言中表示运行程序时传递给main()函数的命令行参数个数。

argv在C语言中表示运行程序时用来存放命令行字符串参数的指针数组。

argc、argv用命令行编译程序时有用。主函数main中变量(int argc,char *argv[ ])的含义如下:

1、main(int argc, char *argv[ ], char **env)是UNIX和Linux中的标准写法。

2、argc: 整数,用来统计你运行程序时送给main函数的命令行参数的个数

3、* argv[ ]: 指针数组,用来存放指向你的字符串参数的指针,每一个元素指向一个参数。其中argv[0] 指向程序运行的全路径名,argv[1] 指向在DOS命令行中执行程序名后的第一个字符串,argv[2] 指向执行程序名后的第二个字符串,argv[argc]为NULL。

4、argc、argv是在main( )函数之前被赋值的,编译器生成的可执行文件,main( )不是真正的入口点,而是一个标准的函数,这个函数名与具体的操作系统有关。

扩展资料:

C语言中常用函数:

1、int abs(int i)

返回整型参数i的绝对值

2、double cabs(struct complex znum)

返回复数znum的绝对值

3、double fabs(double x)

返回双精度参数x的绝对值

4、long labs(long n)

返回长整型参数n的绝对值

5、double exp(double x)

返回指数函数ex的值

6、double frexp(double value,int *eptr)

返回value=x*2n中x的值,n存贮在eptr中

7、double ldexp(double value,int exp)

返回value*2exp的值

8、double log(double x)

返回logex的值

9、double log10(double x)

返回log10x的值

10、double pow(double x,double y)

返回x^y的值

参考资料来源:百度百科-argc argv



argc是参数个数,定义为int
argv是字符串数组,存的是参数,定义为char**或者char* argv[]
比如你编译好的程序为my.exe
在命令行执行 my.exe 1 2 3
那argc就是4,argv[0]是"my.exe",argv[1]是"1",argv[2]是"2",argv[3]是"3";

argc表示参数个数,argv是双指针,表示各个参数的内容
int main(int argc ,char **argv)为程序的入口。
执行程序时,linux系统中最明显,如./main a b
这样表示参数个数位2,分别是 a和b

argc 是 argument count的缩写,表示argv这个二级指针指向的内存区域中保存的由stub写入的有效命令行参数的个数.
argv 是 argument vector的缩写,表示传入main函数的参数序列或指针,并且第一个参数argv[0]一定是程序的名称,并且包含了程序所在的完整路径,所以确切的说需要输入的main函数的参数个数是argc-1个。

C语言中char**是什么意思? 和char*有什么区别呀
答:4、常量存储区:这是一块比较特殊的存储区,他们里面存放的是常量,不允许修改 char**最常使用在main函数中:int main(int argc,char**argv);等同于int main(int argc,char*argv[])等同于int main(int argc,string argv)(C语言中并不直接包含字符串类型,此处便于理解,所以使用string类型)char...

int main(int argc, char **argv)
答:argv[i] -- 第 i 个参数。argv[0] -- 可执行程序名。例如运行:abc.exe argc 等于 1, argv[0] 是 "abc.exe"例如运行:rec.exe 4 5.2 argc 等于 3, argv[0] 是 "rec.exe", argv[1] 是 "4", argv[2] 是 "5.2".主函数里若有:int x;float y;char s[80];strcpy...

c语言中十的n次方怎么表示
答:c语言中十的n次方完整代码表示:include "stdafx.h"include<math.h> include <iostream> using namespace std;int main(int argc, char* argv[]){ cout<<"请输入指数:"<<endl;int x,y;cin>>x;y=pow(10,x);cout<<y<<endl;return 0;} ...

char是什么类型啊?
答:char 字符型;char *字符型指针,指向一个字符;char ** 指向字符型指针的指针;char**最常使用在main函数中:int main(int argc,char** argv);等同于 int main(int argc,char * argv[])等同于int main(int argc,string argv)(C语言中并不直接包含字符串类型,此处便于理解,所以...

C语言中int argc,char **argv,一个“*”是代表指针,两个“*”是什么...
答:比如说你的程序时这样:while( i < argc){ printf("argv[%d]: ", i);printf("%s\n", argv[i]);i++;} 你在cmd中运行这个程序, print.exe hello, world.那么输出应该是:argv[0]: .../print.exe(路径)argv[1]: hello,argv[2]: world.其中argc = 2, argv 就是二位数组保存...

int main(int argc,char *argv[])是什么意思?
答:首先,说一下main(int argc,char *argv[])函数的两个形参,第一个int argc,是记录你输入在命令行(你题目中说的操作就是命令行输入)上的字符串个数;第二个*argv[]是个指针数组,存放输入在命令行上的命令(字符串)。当命令行输入PROG ABCDEFGH IJKL时,记录了3个字符串(以间隔为界,不含间隔,这是约定),*...

c语言为什么char *argv[]和char**argv是等价的?
答:由于C的函数是传值调用的,就是说传数组时只需要一个首地址(指针),所以编译器把形参中的x[](x[10]等)都只解释为*x(只有作函数形参时是这样,别的地方意义是不同的),所以char *argv[]就把argv[]解释成了*argv,结果整体就变成了char **argv了(注意在main中并不是argv而是argc,...

若a=1,b=2,则a|b的值为多少,又是怎么算,c语言的
答:include <stdio.h> int main(int argc, char *argv[]){ int a,b,c;a=1;b=2;c=a|b;printf("%d\n",c);//位运算或:先把a,b换成二进制01和10,或运算后为11,再转化成十进制就是3 return 0;} 望采纳

C语言 主函数里的东西是什么意思 int main(int argc, char* argv[]){...
答:*argv[])main(int argc, char *argv[], char *env[])其中第二种情况也是合法的,但不常见,因为在程序中很少有只用argc,而不用argv[]的情况。我是直接学c++起步的,一般的控制台程序就是main(){……}因为除了需要重定向输入输出的情况下,一般是不用那些参数的。c语言不熟 ...

c语言main(int argc, char *argv[ ])求大佬
答:先说说main的这两个参数的意思 argc指的是命令行参数的个数 argv是个char*数组,每一个char*元素指向一个字符串,这些字符串就是命令行的每个参数字符串 argv[0]代表命令文件本身,所以argc至少是1 所以执行ABC FILE1 FILE2 时main得到的 argc是3 ,参数字符串就是命令本身和"FILE1","FILE2",...