2 love honeies1 love_honeies1 于 2016.02.02 15:16 提问

error C2105: '++' needs l-value

#include "stdio.h"

void main()
{
FILE* fp;

int n[100];

int t=0;

if((fp=fopen("test.txt","r"))==NULL)

{

printf("失败\n");
}

while(!feof(fp))

{
fscanf(fp,"%d",&n++);
}

fclose(fp);
}

2个回答

caozhy
caozhy   Ds   Rxr 2016.02.02 15:27
已采纳

int i = 0;
while(!feof(fp))
fscanf(fp,"%d",&n[i++]);

91program
91program   Ds   Rxr 2016.02.02 15:29

优先级与运算顺序的问题, & 和 ++ 优先级相同,但右侧先运算。n 为数组名,不能执行自 ++ 或者 -- 的操作,因为它是常量指针。

2级优先级 右结合
! 逻辑非运算符
~ 按位取反运算符
++ 前缀增量运算符
-- 前缀增量运算符

  • 正号运算符
  • 负号运算符 (类型) 类型转换运算符
  • 指针运算符 & 地址与运算符 sizeof 长度运算符
91program
91program 建议你在不清楚优先级与结合顺序时,使用括号() 来达到想要的结果。
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!