假设我们有
int main(int argc, char* argv[]{...}
由于这个原因
if(isdigit(*argv[index])){...}
索引只是一个int,但是
if(isdigit(argv[index])){...}
无法正常工作并且告诉我无法将char*
(argv[index]
)转换为int
,这是isdigit想要传递的参数?编译器如何将char**
识别为int
而将char*
识别为int
?
答案 0 :(得分:0)
isdigit需要char参数,而不是char *,argv是char *的数组,因此argv [index]会留下char *。您的选项是* argv [index](如您所发现的)或argv [index] [0]。
答案 1 :(得分:0)
if(isdigit(*argv[index])){...}
argv
为char **
,因此*argv[index]
只是char
类型,可以隐式转换为int
。
但argv[index]
为char *
类型,要转换为int
,您需要明确转换。