c语言改错求助,跪谢!

2025-06-28 04:17:49
推荐回答(3个)
回答1:

1、
#define TOTAL_ELEMENTS (sizeof(array)/sizeof(array))
改成
#define TOTAL_ELEMENTS (sizeof(array)/sizeof(int))
这样才有“ELEMENT总数”的含义

2、后面的错误更加隐蔽:
d是有符号数,但是TOTAL_ELEMENTS是无符号数,C中这种情况会统一转换成无符号数比较,所以d->0xFFFF一定大于TOTAL_ELEMENTS-2的,所以那个条件被判断为非,最终的x是不确定的数。

回答2:

sizeof(array)/sizeof(array) 这个式子总是1,那么判断表达式d<=TOTAL_ELEMENTS-2 总是为真

回答3:

(sizeof(array)/sizeof(array))不理解
知会是真值。
同意第一个人的看法