因为atoi需要的是字符串数组,你传入单个字符,它往下遇不到\0还会继续往下。堆栈变量的方向是反的,内存是 2 1 \0,你从2开始转换就是21,从1开始就是1正确做法是char x1[] ="1";char y1[] = "2";