首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于main的参数有关问题

2012-04-01 
关于main的参数问题我想对main的参数进行判断。。对不同的参数进行不同的操作。。但是我发现不能 用if判断:比

关于main的参数问题
我想对main的参数进行判断。。

对不同的参数进行不同的操作。。



但是我发现不能 用if判断:比如 if(argv[1]=="i")

我通过调试发现 当 argv[1]=i的时候 argv[1]=="i" 这个语句也不成立。。。。


我该怎么判断呢

[解决办法]
字符串比较要用strcmp之类的函数,不能用简单的==
[解决办法]
因为那个参数是char **agrv啊...你argv[1]取得的是一个字符串指针,指向的是第一个字符串
[解决办法]
argv 类型是 char*[],argv[1] 类型是 char*,你想想看 (char*) == (char*) 是在比较什么呢?

你的 if(argv[1] == "i") 相当于(假设 argv[1] 是在命令行输入的字母 i):

char* p1 = argv[1]; // p1 指向 argv[1] 指向的内存,其中保存了两个字符: 'i' 和 '\0'
char* p2 = "i"; // p2 指向静态数据区的内存,其中保存了两个字符: 'i' 和 '\0'
你代码里的 if(argv[1] == "i") 就相当于 if(p1 == p2) <=== 这个是在比较两个指针是否指向同一个内存地址,lz你觉得会相等吗?

热点排行