赋值中的数组非左值

时间:2013-10-02 17:38:50

标签: c arrays

int masivs[row][col],i,j,n,choice,r,c;

system("cls");
srand(time(NULL));
printf("Darba autors Einars Ozols\n");
printf("Sakummasive aizpilde \n");
printf("Kadu masivu izveidot?\n Ja 5*10 spied 1 \n Ja 4*11 spied 2");
scanf("%d", &choice);
if (choice==1)
r=5&&c=10;

错误在线r = 5&& c = 10; 如何以不同的方式写它?

2 个答案:

答案 0 :(得分:6)

r=5&&c=10;  

表示r = (5&&c) = 100 = 10 1 = 10

<强>说明: 这样做的原因是&&运算符的优先级高于=,因此5c首先绑定到&&运算符。绑定后,此表达式看起来像

r=(5&&c)=10;   

相当于

r= 0 =10;   

r= 1 =10;  

这两种表达背后的原因是5 && c将返回truefalse,具体取决于c的值(无论是0还是if (choice==1) { r = 5; c = 10; } )。
根据OP的评论

  

如何连接r = 5和c = 10

你可以这样做

{{1}}

答案 1 :(得分:1)

if (choice==1)
{
    r = 5;
    c = 10;
}

除了空格分布的微小变化外,如果你不试图对它进行模糊处理,这是写它的唯一方法。