次のコード。
typedef struct chainCell{
int data;
struct chainCell* next;
} chainCell;
bool sameValues (chainCell *x, chainCell *y)
{
if ((x == NULL) & (y == NULL)) return true;
if ((x == NULL) | (y == NULL)) return false;
bool same = true;
chainCell *xp = x, *yp = y; // scan pointers
while ((xp != NULL) & (same == true)) // point A
{
if (xp->data != yp->data) same = false;
xp = xp->next;
yp = yp->next;
if (((xp == NULL) & (yp != NULL)) // point B
| ((xp != NULL) & (yp == NULL)))
same = false;
};
return same;
};
(same == true)
ループ コントロールに?が含まれている理由について非常に混乱しています。
また、ポイント B の if ステートメントの目的は何ですか? ブール式が何をチェックしているのかわかりませんか?
さらに理解を深めるための助けをいただければ幸いです。