Most of the time, pointer and array accesses can be treated as acting the same, the major exceptions being:
1) the sizeof operator
o sizeof(array) returns the amount of memory used by all elements in array
o sizeof(pointer) only returns the amount of memory used by the pointer variable itself
2) the & operator
o &array is an alias for &array and returns the address of the first element in array
o &pointer returns the address of pointer
3) a string literal initialization of a character array
o char array = “abc” sets the first four elements in array to ‘a’, ‘b’, ‘c’, and ‘\0’
o char *pointer = “abc” sets pointer to the address of the “abc” string (which may be stored in read-only memory and thus unchangeable)
4) Pointer variable can be assigned a value whereas array variable cannot be.
int a; int *p; p=a; /*legal*/ a=p; /*illegal*/
5) Arithmetic on pointer variable is allowed.
p++; /*Legal*/ a++; /*illegal*/
Please refer Difference between pointer and array in C? for more details.
- Pointers in C and C++ | Set 1 (Introduction, Arithmetic and Array)
- Dangling, Void , Null and Wild Pointers
- NULL pointer in C
- What are near, far and huge pointers?
- Arrays in C Language | Set 2 (Properties)
- How arrays are passed to functions in C/C++
- Arrays in C/C++
- Function Pointer in C
- void pointer in C
- Difference between pointer and array in C?
- What is the difference between single quoted and double quoted declaration of char array?
- An Uncommon representation of array elements
- What is Memory Leak? How can we avoid?
- What all is inherited from parent class in C++?
- How to declare a pointer to a function?