While working with pointers i wrote the following code,
int main()
{
int a[]={10,20,30,40,50};
int i;
for(i=0;i<5;i++)
{
printf("\n%d",*a);
a++;
}
return 0;
}
Now as per my understanding array name itself is an address in c and the pointer arithmetic done is here is correct as per my knowledge. But when i try to run the code it is giving me "Lvalue Required" error.
So what is the exact reason for occuring Lvalue required error because before this also i have come across situations where this error is there. Secondly why the arithmetic on the pointer is not legal here in this case?
You can't do a++
on a static array - which is not an Lvalue. You need to do on a pointer instead. Try this:
int *ptr = a;
int i;
for(i=0;i<5;i++)
{
printf("\n%d",*ptr);
ptr++;
}
Although in this case, it's probably better to just use the index:
int i;
for(i=0;i<5;i++)
{
printf("\n%d",a[i]);
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With