作者OpenSkyWin (鸡飞城市)
看板C_and_CPP
标题[问题] main的传入值argv的问题..
时间Mon May 11 16:54:51 2009
hi,all
最近一直在想main函式里的 argv传入值的宣告
感觉观念不是很了解
第1
如果宣告成
char **argv
或
char *argv[]
好像这2者的用法是完全一样的??
不过就意义上来说,我只知道
第一个宣告成双重指标
第二个是宣告成字元的指标阵列
第2
爬文当中有一个网友推文说
宣告成 char argv[][]
也是和前两种的使用方法一样
可是我这样宣告就无法编译...@@
dev-c++的错误讯息就直接说
declaration of `argv' as multidimensional array must
have bounds for all dimensions except the first
In function `int main(int)':
第3
假设我在shell下丢参数给程式来执行
program.exe abc def xyz
这时在程式中
argv[0]="program.exe"
argv[1]="abc"
argv[2]="def"
argv[3]="xyz"
那麽我如果想印出参数里的「字元」
像,"abc"的a、"def"的e、"xyz"的z 时
我要怎麽写呢...一直写不出来@@
Thanks!!
--
我从小在溪流边看到鱼儿力争上游
我就立志以後一定要做大事不要做大官
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.228.99.203
※ 编辑: OpenSkyWin 来自: 61.228.99.203 (05/11 17:01)
1F:推 VictorTom:argv[1][0], argv[2][1], argv[3][2], 基本上当成char 05/11 16:59
2F:→ VictorTom:string array就是了; 话说小弟也只用过*argv[].... 05/11 17:00
3F:推 zlw:应该不能说argv[1]="abc",而是记忆体里面有个字串"abc",而 05/11 17:24
4F:→ zlw:argv[1]内存放指向该字串起始位址。换个方向想,不管你argv是 05/11 17:25
5F:→ zlw:怎麽宣告,传过来的都一样是3个(此例)指标 05/11 17:26
6F:→ zlw:打错,此例是4个 (0~3) 05/11 17:26
7F:推 zlw:你可以用memcpy函数来把记忆体里的"abc"(非变数),存到变数里 05/11 17:32