Since nobody has mentioned it:
Your code contains a famous bug. The following code may overflow the int range for large arrays:
int i = (high + low) / 2;
To avoid this, use the following:
int i = low + (high - low) / 2;
Note that simply using a different data type isn’t enough — it just postpones the bug to larger arrays.
Another, unrelated issue relates to code readability: in the parameter list to binarySearch, int arr[] looks like an array declaration but (because of C++ rules), this is actually a pointer, i.e. it’s equivalent to writing int* arr. Using the int arr[] syntax is potentially misleading, and therefore best avoided.
To further improve readability, use a different name for i (what does i stand for?). mid is frequently used here.