C Programming - Pointers - Discussion

Discussion Forum : Pointers - Point Out Errors (Q.No. 2)
2.
Point out the error in the program
#include<stdio.h>

int main()
{
    int a[] = {10, 20, 30, 40, 50};
    int j;
    for(j=0; j<5; j++)
    {
        printf("%d\n", a);
        a++;
    }
    return 0;
}
Error: Declaration syntax
Error: Expression syntax
Error: LValue required
Error: Rvalue required
Answer: Option
Explanation:
No answer description is available. Let's discuss.
Discussion:
65 comments Page 7 of 7.

Traian said:   6 years ago
L - Value means an object that has an identifiable location in the memory(has an address) Ex: var a;
R - Value means an object with no identifiable location in the memory Ex: (a+b);
(7)

Nani said:   6 years ago
We can't do. a=a+1;

Because base address will change. This is illegal. If a is pointer we can do it.
(2)

Kausa chan said:   5 years ago
No, @Kiran.

Because ptr is just pointer to an integer and you're storing the address of an array to it so it will throw an error.
(1)

Rakshitha said:   4 years ago
Explain the answer clearly.
(1)

Manoj S said:   11 months ago
The array name is also a pointer.
But it is a constant pointer, which means it can't be modified. So, we need an LValue(Left-hand value) to make it possible for traversal.
i.e: int *ptr = a;
(1)


Post your comments here:

Your comments will be displayed after verification.