C语言 具有数组比较的条件 While 循环



我正在将值读取到一个数组中,然后根据该数组进行特定系统协议的检查,如果不满足条件,程序必须继续读取,非常简单。代码块:

buff = read(fp, token_monger, MAX_APDU);
printf("the token_monger[2] and token_monger[3] = %02x and %02xn", token_monger[2], token_monger[3]);
while(token_monger[2] != 0x01 && token_monger[3] != 0x00)
{
    printf("inside while token checkn");
    buff = read(fp, token_monger, MAX_APDU);
    token_monger[buff] = 0;
}
printf("the token_monger[2] and token_monger[3] = %02x and %02xn", token_monger[2], token_monger[3]);

while 循环之前和之后的打印用于调试。 它们都打印值 0x00。当我执行此代码时,进程到达循环之前和之后,但从未进入它,我从我的打印中知道条件不满足,此外,在程序退出 while 循环时,也应该满足几行的 if 语句(如果有人想看那部分, 我可以发布)。我想知道是否有任何明显明显的我做错了,或者这是否是编译器可能存在的问题,并且无法处理这样的事情(这似乎不太可能)再次感谢

你写了"..以前。。同时循环..他们都是..0x00。while 循环仅在以下情况下进入

while(token_monger[2] != 0x01 && token_monger[3] != 0x00)

正如您所说,token_monger[3] == 0x00 ,因此跳过了 while 循环。

最新更新