温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - What is the meaning of "argv['A']" in c?
c

其他 - c中的“ argv ['A']”是什么意思?

发布于 2020-03-27 10:26:55

我找到了以下代码,但我不知道它是什么或如何工作。我以前只argv[n]在C中看过(带有整数索引的argv),从来没有像这样的字符文字argv['A']

if(argc != 100) return 0;
if(strcmp(argv['A'],"\x00")) return 0;
if(strcmp(argv['B'],"\x20\x0a\x0d")) return 0;
printf("Stage 1 clear!\n");

这是做什么的?您能解释一下它为什么起作用吗?

查看更多

查看更多

提问者
user1208081
被浏览
220
Edward Minnix 2019-07-03 21:41

从技术上讲,这在C语言中对于访问argv(argv[65]的元素有效

编辑:正如John Ballinger在评论中指出的那样,仅当C实现将字符文字映射到其ASCII值时,这才是标准要求的。但是,大多数C实现都这样做,因此我假设代码的作者正在使用此假设。

这是因为在C语言中,所有字符文字都可以充当数字文字。

当然,如果您期望argv中有65个以上的元素,则可能出了问题。即便如此,除非您将argv与字母进行特定的关联,否则对索引65和66 使用'A''B'并没有意义。

TL; DR它是一个索引,但是代码异常异常,并且可能被故意混淆了