You don't show the definitions of Int_T, real_T, and InputRealPtrsType, so I am guessing a bit here.
y is a pointer to a real_T type.
*y is the real_T value that is being pointed to by y. I.e., it is the value at the memory address contained in the y variable.
The expression " *y++ = right_hand_side " means assign the value of right_hand_side to the real_T value that y is currently pointing to in memory, and then increment y to point to the next real_T value in memory. The ++ is the increment operator and the * is the dereference operator.
If uPtrs is a pointer to a pointer (or an array of pointers) to a real_T type, then uPtrs[i] is the i'th pointer in that array, and *uPtrs[i] is the real_T value at the memory address that uPtrs[i] is currently pointing to. The square brackets [ ] (array element) have higher precedence than the * operator (dereference).
So the breakdown is this:
*y++ = 2.0 *(*uPtrs[i]);
" Take the real_T value that uPtrs[i] is currently pointing to, multiply that by 2, assign this result to the memory location that y is currently pointing to, and then increment y to point to the next real_T value in memory."
If u0 is an array of pointers to a real_T type, then u0[0] is the first pointer in that array, and *u[0] is the real_T value that u[0] is pointing to in memory.