第2个回答 2019-03-18
fscanf(fp,"...%s..",pname,..) 中输入格式 %s 是读入一个字符串,存放到 pname 的“首地址”为起始的 内存区。这种存放方式,并不考虑pname的存储区声明了几个字节,只要有“首地址”,就去存放。
由于程序较简单,需要的系统资源很少,char pname[1]; 只声明了1个字节的存储区,但只要后面的存储区空着,未被系统用掉,本程序就可以用,也不会出错。但对于大的程序,超出1个字节的存储区里的数据是不可靠的。所以编程时,要避免这种错误的产生。本回答被提问者采纳