Saturday, 5 June 2021

Arrays and Pointer - How to create arrays using pointers in C

An array is collection of similar type of data stored in sequence order. For example, let us consider the following code block

int A[5]={2,3,4,5,6};

all the element of the array A[5] are stored in sequence. In modern day compilers an integer can take to byte of memory to store integer data and it looks like this 

 Let us consider a variable 'X"

int x=10;

int *ptr;

ptr=x;

If you want print the value of 'X' using pointer we can do this as 

printf('%d",*ptr); // gives x value located in address location 300.

If we de-reference the pointer as 'ptr+1', then we are trying to print

printf('%d",*(ptr+1)) // it will gives an error. We don't know what is stored in location 302.

One of the property of the array is " an array name is actually a pointer to its first element". When we are de-referencing the array name, we are de-referencing the first element of the array.

Example:

int A[5]={2,3,4,5,6};

One create a pointer using arrays as

1. ptr=A;

2. ptr=&A[0];

If you want to print the array elements, use pointer increment arithmetic.

Example-1:

Write a C program to read values into array and print them using pointers.

void main()
{
int a[10],i;
int *ptr;
ptr=a;
printf(" enter values into array");
for(i=0;i<10;i++)
scanf("%d",ptr++);
printf("array elements are ");
for(i=0;i<10;i++)
printf("%d",ptr++);
getch();
}

Example-2:

Write a C program to read values into array and print them in reverse order using pointers.

void main()
{
int a[10],i;
int *ptr;
ptr=a;
printf(" enter values into array");
for(i=0;i<10;i++)
scanf("%d",ptr++);
printf("array elements are ");
for(i=0;i<10;i++)
printf("%d",*(--ptr));
getch();
}

0 comments:

Post a Comment

Note: only a member of this blog may post a comment.

Find Us On Facebook

Computer Basics

More

C Programming

More

Java Tutorial

More

Data Structures

More

MS Office

More

Database Management

More
Top