设为首页
收藏本站
开启辅助访问
切换到窄版
登录
立即注册
中问网首页
我的收藏
站长博客
搜索
搜索
本版
帖子
用户
第一问答网
»
论坛
›
中问网
›
问答
›
int main( int argc , char* argv[] ) 的问题
返回列表
发新帖
int main( int argc , char* argv[] ) 的问题
[复制链接]
11
|
2
|
2011-2-14 05:59:53
|
显示全部楼层
|
阅读模式
一般的资料都说argc是参数个数,argv是指向参数的指针数组,argv[0]指向的是程序名字符串,我想问下这个字符串是不是一定就是包含这个main函数的可执行文件的名字。比如说我写了一个测试文件,test_arg.c,然后生成了一个exe文件test_arg.exe,里面包含printf( %s ,argv [ 0 ] )这样的语句,那么假如我在命令行输入test.exe 1 2 3,那么argc为4,argv[0]是test.exe。那么在其他情况下会不会出现argv[0]不是在命令行输入的程序的情况?把这个传给main函数有什么用?貌似参数比较有用吧?因为如果要执行这个main函数,就必须在命令行键入exe文件的名字,再把这个传给main函数是做什么啊?
那是不是传给main函数的argv[0]一定是包含这个main函数的可执行文件的名称?
回复
使用道具
举报
千问
|
2011-2-14 05:59:53
|
显示全部楼层
完整地解答这个问题:argc=argument count; 自动计算命令行有几个参数argv=argument vector; 将命令行的参数名字分别置于各个字符串指针中。注意这里的类型:argc是整数类型,不多解释。char* argv[]是字符串指针。用你的例子来说,test.exe 1 2 3,那么argc=4;argv[0]="test.exe"; argv[1]="1"; argv[2]="2"; argv[3]="3";至于应用的话,举个很常见的例子:比方说,你的main函数需要打开一个文件,对文件进行操作,而且希望用户在命令行的第二个位置就直接输入(i.e., argv[1]的位置),那么可以写如
回复
使用道具
举报
千问
|
2011-2-14 05:59:53
|
显示全部楼层
在VC下可生成DEBUG或RELEASE模式的exe文件。由于argv [ 0 ] 包含了路径名,这样可通过它知道当前执行的是哪一个模式的exe文件。 是的,传给main函数的argv[0]一定是包含这个main函数的可执行文件的名称。
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
千问
主题
0
回帖
4882万
积分
论坛元老
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
积分
48824836
加好友
发消息
回复楼主
返回列表
问答
热门排行