In this article, you will learn-
C Arrays
In this tutorial, you will learn to function with arrays. You will learn to declare, introduce, and access to elements of an array with the help of examples.
int data[100];
How to declare an array?
dataType arrayName[arraySize];
For example,
float mark[5];
Here, we declared an array, mark, of drifting point type. What’s more, its size is 5. Which means, it can hold 5 floating-point values.
It’s essential to take note that the size and kind of an exhibit can’t be changed once it is declared.
Access Array Elements
You can access to components of an exhibit by lists.
Assume you declared an array mark as above. The principal component is mark[0], the subsequent component is mark[1], etc.
Arrays have 0 as the first index, not 1. In this example, mark[0] is the first element.
If the size of an array is n, to access the last element, the n-1 index is used. In this example, mark[4]
Suppose the starting address of the mark[0] is 2120d. Then, the address of the mark[1] will be 2124d. Similarly, the address of mark[2] will be 2128d, and so on.
This is because the size of a float is 4 bytes.
How to initialize an array?
It is conceivable to instate a cluster during affirmation. For instance,
int mark[5] = {19, 10, 8, 17, 9};
You can also initialize an array like this.
int mark[] = {19, 10, 8, 17, 9};
Here, we haven’t specified the size. However, the compiler knows its size is 5 as we are initializing it with 5 elements.
Here,
mark[0] is equal to 19 mark[1] is equal to 10 mark[2] is equal to 8 mark[3] is equal to 17 mark[4] is equal to 9
Change Value of Array elements
int mark[5] = {19, 10, 8, 17, 9} // make the value of the third element to -1 mark[2] = -1; // make the value of the fifth element to 0 mark[4] = 0;
Input and Output Array Elements
Here’s how you can take input from the user and store it in an array element.
// take input and store it in the 3rd element scanf("%d", &mark[2]); // take input and store it in the ith element scanf("%d", &mark[i-1]);
Here’s how you can print an individual element of an array.
// print the first element of the array printf("%d", mark[0]); // print the third element of the array printf("%d", mark[2]); // print ith element of the array printf("%d", mark[i-1]);
Example 1: Array Input/Output
// Program to take 5 values from the user and store them in an array // Print the elements stored in the array #include <stdio.h> int main() { int values[5]; printf("Enter 5 integers: "); // taking input and storing it in an array for(int i = 0; i < 5; ++i) { scanf("%d", &values[i]); } printf("Displaying integers: "); // printing elements of an array for(int i = 0; i < 5; ++i) { printf("%d\n", values[i]); } return 0; }
Output
Enter 5 integers: 1 -3 34 0 3 Displaying integers: 1 -3 34 0 3
Here, we have used a for
loop to take 5 inputs from the user and store them in an array. Then, using another for
loop, these elements are displayed on the screen.
Example 2: Calculate Average
// Program to find the average of n numbers using arrays #include <stdio.h> int main() { int marks[10], i, n, sum = 0, average; printf("Enter number of elements: "); scanf("%d", &n); for(i=0; i<n; ++i) { printf("Enter number%d: ",i+1); scanf("%d", &marks[i]); // adding integers entered by the user to the sum variable sum += marks[i]; } average = sum/n; printf("Average = %d", average); return 0; }
Output
Enter n: 5 Enter number1: 45 Enter number2: 35 Enter number3: 38 Enter number4: 31 Enter number5: 49 Average = 39
Here, we have computed the average of n numbers entered by the user.
Access elements out of its bound!
Assume you declared an array of 10 elements. Suppose,
int testArray[10];
You can access the carry elements from testArray[0] to testArray[9].
Presently suppose in the event that you attempt to get to testArray[12]. The component isn’t accessible. This may cause unforeseen yield (unclear conduct). At times you may get a mistake and later your program may run effectively.
Hence, you ought to never access to components of a cluster outside of its bound.
Please feel free to give your comment if you face any difficulty here.