Although C++ clearly defines operators’ precedence, the compiler is allowed to compute subexpressions with identical precedence in a platform-defined order. Besides, many programmers don’t remember which operators have higher precedence so they might not read complex expressions correctly. Therefore, it’s advisable to parenthesize complex expressions to improve their readability and ensure their correct interpretation in a portable way.