调用 scanf() 会出现错误 "ISO C++ forbids cast to non-reference type used as lvalue"

标签 c

我有这个代码:

int* read(){
int i,num,array[11];
printf("enter a integer value between 1 & 10: ");
scanf("%i",&num);
while(!(num>0&&num<11)){
read() ;
}

if(num>0&&num<11){
printf("enter %i integers now: ",num);
for(i=0;i<num;i++)
scanf("%i",*array++);//LINE 19 is here..........

*array=0;
}
return array;
}

当我尝试调用此函数时,它显示以下编译器错误:

[Error] C:\Users\seeker-PC\Documents\C-Free\Projects\n\Untitled12.cpp:19: error: ISO C++ forbids cast to non-reference type used as lvalue
[Error] C:\Users\seeker-PC\Documents\C-Free\Projects\n\Untitled12.cpp:19: error: non-lvalue in assignment

您能解释一下出了什么问题吗?

最佳答案

scanf("%i",*array++);

这句话毫无意义。您的意思可能是:

scanf("%i", &array[i]);

关于调用 scanf() 会出现错误 "ISO C++ forbids cast to non-reference type used as lvalue",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18598070/

相关文章:

c++ - 表达式的行为 : Defined or Undefined?

c++ - 从堆执行指令

c - 输出中的双数组字符串互连 - C 编程

c - 默认情况下,赋值使整数指针不启用强制转换

c - Worker进程共享资源

c - 声明字符时char和int的区别

c - 为什么我的数组打印出副本?

c - 检索文件中的总行号

c - Unix fork parent id 不一致

c - 在c中打印所有十六进制数字