少分号是因为你的main()前面要加 voidif((fp=fopen("in8.dat","r"))==NULL) return 1; 的意思是先做fopen得到文件指针,并将其赋值给fp赋值语句的整体值就是被赋的值所以(fp= fopen("in8.dat","r"))==NULL这个判断相当于fp = fopen("in8.dat","r");if(fp ==NULL){}