학식충인데 가르침좀

vector<string> phone_book = { "119", "97674223", "1195524421" };

이러한 벡터에서


cout << 1 && "1" == phone_book[1];

요거는 문제가없는데

cout <<  "1" == phone_book[1];

cout << 1  == phone_book[1];

얘들은 오류가 남


1&&"1" 은 결과가 어차피 1아님 0아님?(true, false) 근데 저 자리에 그냥 1,0,true,false 넣으면 오류남

무슨 차이임??