在 C 编程中,当我们为 fgets 函数传递参数 *pointer_for_string、sizeof_string 和 *stream 时,我们不必将函数的返回值写回到之前定义/给出的 *pointer_for_array 中,这是否正确? fgets 的参数。
为什么会是一个错误?
char string_ofsize_ten[10];
string_ofsize_ten = fgets(string_ofsize_ten, 10, stdin);
事实上,函数 fgets 返回传递给它的指针作为第一个参数。但是您不能将指针分配给数组,因为它是在代码片段中编写的
char string_ofsize_ten[10];
string_ofsize_ten = fgets(string_ofsize_ten, 10, stdin);
数组是不可修改的左值。
注意上面函数
fgets
的调用中,用作参数的数组被隐式转换为指向其第一个参数的指针。
返回的指针用于检查 fgets 调用是否成功,例如
whle ( fgets(string_ofsize_ten, sizeof( string_ofsize_ten ), stdin) != NULL )
{
string_ofsize_ten[ strcspn( string_ofsize_ten, "\n" ) ] = '\0';
puts( string_ofsize_ten );
}