int main()
{
int x[3]={4,5,6};
int *p=x;
p +1=p;/*compiler shows error saying
lvalue required as left
operand of assignment*/
cout<<p 1;
getch();
}
si vous utilisez un opérateur d'affectation mais que vous l'utilisez de manière incorrecte ou au mauvais endroit, vous obtiendrez ce type d'erreurs!
supposez que si vous tapez:
p + 1 = p; vous obtiendrez l'erreur !!
vous obtiendrez la même erreur pour cela:
if (ch> = 'a' && ch = 'z')
comme vous le voyez, je peux voir que j'ai essayé d'assigner une instruction if () !!!
comme je suis bête !!! droite??
ha ha
en fait j'ai oublié de donner moins que le signe (<)
if (ch> = 'a' && ch <= 'z')
et a obtenu l'erreur !!
C'est juste une faute de frappe (je suppose) -
p+=1;
au lieu de p +1=p;
est requis .
Comme son nom l'indique, l'expression lvalue
doit être l'opérande de gauche de l'opérateur d'affectation.
En termes simples, une valeur l est quelque chose qui peut apparaître sur le côté gauche d'une affectation, généralement une variable ou un élément de tableau.
Donc, si vous définissez int *p
, puis p
est une valeur l. p+1
, qui est une expression valide, n'est pas une valeur l.
Si vous essayez d'ajouter 1 à p
, la syntaxe correcte est:
p = p + 1;