问为什么我不能做这样的事情?
extern char *getpass(); char str[10]; str = getpass("Enter password: ");
答在 C 语言中,数组是“二等公民”;这种偏见的一个后果是不能给数组赋值(另见问题 6.7)。当您需要将一个数组的内容复制到另一个数组时,必须显式进行。对于char数组,通常使用strcpy例程
strcpy(str, getpass("Enter password: "));
(当您想在不复制数组的情况下传递数组时,可以使用指针和简单的赋值。另见问题 4.1。)
另见问题 8.2。
参考文献:ISO Sec. 6.2.2.1
H&S Sec. 7.9.1 pp. 221-2