t = x; x = y; The error appears in this sentence, where x=y is wrong, and the integer pointer cannot be assigned an integer value. If you want to assign an integer value to the pointer, you must cast it: x = (int *) y; (This may cause runtime errors because the space indicated by the address (int *)y may be an unreadable area. According to the meaning of the program, this sentence should be changed to *x=y, and then the value of y should be assigned to the memory space represented by X.
T=x, although there will be no compilation error or runtime error, but this assignment statement has violated the original intention of the program, meaning: put x (that is&; A) assigned to t, an address assigned to an integer variable should be changed to T = * X, and the value of the space represented by x (that is, a) is passed to t.