가끔 라이브러리의 코드를 까서 보면 논리부정연산자를 두번씩 쓰는 경우가있더라고요

예를들어 

int func() {

 return !! expression;

}


이렇게 !! 두개를 쓰는경우는 뭐임?

return expression 이랑 return !! expression 둘다 똑같은거 아닌가요?