Open In App

Pointer vs Array in C

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Share
Report issue
Report

Most of the time, pointer and array accesses can be treated as acting the same, the major exceptions being: 
 

1. the sizeof operator

  • sizeof(array) returns the amount of memory used by all elements in the array 
  • sizeof(pointer) only returns the amount of memory used by the pointer variable itself 

2. the & operator 

  • array is an alias for &array[0] and returns the address of the first element in the array 
  • &pointer returns the address of the pointer 

3. a string literal initialization of a character array 

  • char array[] = “abc” sets the first four elements in array to ‘a’, ‘b’, ‘c’, and ‘\0’ 
  • char *pointer = “abc” sets the 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 an array variable cannot be.

int a[10];
int *p; 
p=a; /*legal*/
a=p; /*illegal*/ 

5. Arithmetic on pointer variable is allowed. 

p++; /*Legal*/
a++; /*illegal*/ 

6. Array is a collection of similar data types while the pointer variable stores the address of another variable.

Please refer Difference between pointer and array for more details.


Last Updated : 18 May, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads