C Tutorial
This c program is used to get the n'th element in the integer array using pointers and which element is to be read is provided as user input.
Sample code to get nth element using pointers,
Getting first array element,
*ptr
Getting Fifth array element,
*(ptr+4)
Getting seventh array element,
*(ptr+6)
User Inputs:
Reads number of elements in integer array.
Gets array elements
Geths which array element to be read.
Steps:
Prints the array elements with located address
printd nth array element in integer array.
#include<stdio.h> void main() { int i, n, term, *ptr, array[10]; printf("\nEnter number of elements: "); scanf("%d", &n); printf("\nEnter array elements: "); for(i=0;i<n;i++) { scanf("%d", &array[i]); } printf("\nArray elements with address: "); ptr=array; // ptr =&array[0] for(i=0;i<n;i++) { printf("\nArray[%d] located at address %u: %d", i, *ptr, ptr); ptr++; } printf("\nArray element by term: "); scanf("%d", &term); ptr=array; printf("%d term element in array: %d", term, *(ptr+(term-1))); }
Output:
$ cc array-nth-element.c $ ./a.out Enter number of elements: 6 Enter array elements: 45 67 87 12 34 52 Array elements with address: Array[0] located at address 45: -1246963872 Array[1] located at address 67: -1246963868 Array[2] located at address 87: -1246963864 Array[3] located at address 12: -1246963860 Array[4] located at address 34: -1246963856 Array[5] located at address 52: -1246963852 Array element by term: 4 4 term element in array: 12
When using pointers, garbage value may be displayed for invalid term element in above program because validation is not added.
$ ./a.out Enter number of elements: 6 Enter array elements: 34 345 45 57 342 341 Array elements with address: Array[0] located at address 34: -2015627296 Array[1] located at address 345: -2015627292 Array[2] located at address 45: -2015627288 Array[3] located at address 57: -2015627284 Array[4] located at address 342: -2015627280 Array[5] located at address 341: -2015627276 Array element by term: 9 9 term element in array: 4196032
Only total elements is 6, so displayed garbage value for 9th term.
Added validation in below for incorrect term element in array,
#include<stdio.h> void main() { int i, n, term, *ptr, array[10]; printf("\nEnter number of elements: "); scanf("%d", &n); printf("\nEnter array elements: "); for(i=0;i<n;i++) { scanf("%d", &array[i]); } printf("\nArray elements with address: "); ptr=array; // ptr =&array[0] for(i=0;i<n;i++) { printf("\nArray[%d] located at address %u: %d", i, *ptr, ptr); ptr++; } printf("\nArray element by term: "); scanf("%d", &term); if(term <= 0 || term > n) { printf("\nIncorrect term value!"); return; } ptr=array; printf("%d term element in array: %d", term, *(ptr+(term-1))); }
Output:
$ cc array-nth-element.c $ ./a.out Enter number of elements: 5 Enter array elements: 34 343 45 32 67 Array elements with address: Array[0] located at address 34: 1444960848 Array[1] located at address 343: 1444960852 Array[2] located at address 45: 1444960856 Array[3] located at address 32: 1444960860 Array[4] located at address 67: 1444960864 Array element by term: 7 Incorrect term value!
C Tutorial
Privacy Policy | Copyright2020 - All Rights Reserved. | Contact us
| Report website issues in Github
| Facebook page
| Google+ page