The first syntax means no data members will be modified by the function, and that the parameter can (and, considering const correctness, will) be modified.
The second one ensures the parameter won't be modified, and that data members might be (again, if it's const correct, one or more of them will be modified).
You can combine both but not likely in the stack::push() function. Pushing onto a stack must modify the stack object and therefore the function that pushes items onto the stack could not be declared const.