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;
}
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);
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.
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.
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;
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:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers