! denotes not operation. lets say a[b] = 5 so a[b] will be true, putting a ! sign means the whole expression (!a[b]) is false. again if a[b] = 0 then a[b] will be false and (!a[b]) will be true.