你声明了 char str[4]="pir"; 4 个字节,初始化 为 'p', 'i', 'r', '\0'。但你使用了 str[i] , i 从0到 29。其中 i 从 4 到 29 时 i 超界,&str[i] 都是 未初始化 的单元。既然未初始化,那些单元的数值是随机的,或由操作系统决定。f(str[i]) 函数调用,每次循环输出8个0或1,putch(' ') 输出一个空格。