There is absolutely no difference, a good compiler will produce the same code in both cases.
However, that's only true for the builtin types, for classes the first method would result in a call to the standard constructor and the assignment operator.
Or in other words: always* use the second variant.
In your first illustration, variables are fully declared and then the values are assigned to it. Therefore, it clearly involves 2 operations, variable definition with default initialization (depending upon scope) followed by value assignment. In your second illustration, variables are initialized during definition with the supplied values. Therefore, it eliminates the assignment operation required in your first approach. You may see this for yourself when you create user defined types using classes/structs. In the first case, constructors and assignment operators would be called whereas in the second case only the constructor would be called. It is always better to go with the second approach even though the difference may not be noticeable for default types.