问一下假如函数是int main(int argc,char *argv[])这样,哪些算参数,哪些算变元呢

C语言 码拜 9年前 (2016-04-07) 1295次浏览
到底是argc和argv[]呢,还是 用户输入的呢。
书上讲得很模糊。
解决方案

20

参数,变元,C,C++语言函数,不是数学物理方程
C,C++ 有变量 这种 语法成分
有 函数参数(实参 和形参)这一类 函数定义,声明,调用 相关的概念
对于函数,形参相当于 ,函数内部定义的 变量。
只是数组的有点小小的不同。
函数定义,函数声明 的参数表中的内容,为形式参数。
函数调用的参数表中的内容,为实际参数。
函数的每个实参,是个表达式
函数的每个形参,可以看作变量
argc,argv[] 是main 函数的形式参数
是 C,C++标准库中的初始化代码,调用 main 函数传递过来的参数。
其中 argc 是 初始化代码获取的命令行参数的
字符串个数
argv 是每个命令行参数(空格分隔的)
通过处理命令行参数,应用程序在命令行 执行的时候,可以 传递一些命令参数
应用程序,根据这些参数,产生不同的运行结果。
这些参数,是命令行这种执行方式 传递的
这是 C 语言程序,对 执行环境(shell 程序)的响应
举例
假设程序编译后,生成 a.exe
命令行输入a.exe x y z
应用程序,就可以得道 argc 的值,为 4
argv[0] =”a.exe”,argv[1] =”x”,argv[2]=”y”,argv[3] =”z”;
假设,应用程序,简单的依序输出 argv
就会输出 a.exe x y z
一般来说,编译器都是这种带 参数的程序
可以 在命令行输出编译参数。根据不同参数产生不容的编译结果

20

argc是命令行总的参数个数
argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数
命令行后面跟的用户输入的参数,例如:

int   main(int   argc, char*   argv[])
{
	int   i;
	for (i = 0; i < argc; i++)
		cout << argv[i] << endl;
	cin >> i;
	return   0;
}

执行时敲入
F:\MYDOCU~1\TEMPCODE\D1\DEBUG\D1.EXE   aaaa   bbb   ccc   ddd
输出如下:
F:\MYDOCU~1\TEMPCODE\D1\DEBUG\D1.EXE
aaaa
bbb
ccc
ddd

5

命令行参数,不是 应用程序本身的输入
而是shell环境中,以及其他可以执行别的程序的环境中
输入的带有参数的 命令行 命令 中的 参数
widows 中,cmd下执行的程序,可以带有 命令行参数
一个程序,调用可执行程序,可以传递命令行参数
应用程序执行时,不再需要额外输入命令行参数。
在 windows 中,批处理文件 .bat,命令文件 .cmd
中,每一行都是命令
应用程序,可以在批处理文件中执行
批处理文件,每一行就是一个命令行
可以执行内部命令,外部命令(可执行文件.exe),以及脚本语言指令

5


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明问一下假如函数是int main(int argc,char *argv[])这样,哪些算参数,哪些算变元呢
喜欢 (0)
[1034331897@qq.com]
分享 (0)