C Array Declaration

What is an Array?

An array is a collection of same-type elements stored in contiguous memory locations with a single variable name. It allows you to store multiple values using one variable.

Array Declaration Syntax

data_type array_name[array_size];

Basic Declarations

int numbers[5];        // Array of 5 integers
float prices[10];      // Array of 10 floats
char name[20];         // Array of 20 characters (string)
double values[100];    // Array of 100 doubles

Ways to Declare and Initialize Arrays

1. Declaration Then Assignment

#include <stdio.h>
int main() {
int scores[5];          // Declaration
scores[0] = 85;         // Assign value at index 0
scores[1] = 90;
scores[2] = 78;
scores[3] = 92;
scores[4] = 88;
for(int i = 0; i < 5; i++) {
printf("scores[%d] = %d\n", i, scores[i]);
}
return 0;
}

2. Declaration with Initialization (Compile Time)

#include <stdio.h>
int main() {
int numbers[5] = {10, 20, 30, 40, 50};    // Full initialization
int values[5] = {1, 2};                    // Rest are auto-set to 0
printf("numbers[2] = %d\n", numbers[2]);   // 30
printf("values[2] = %d\n", values[2]);     // 0
printf("values[4] = %d\n", values[4]);     // 0
return 0;
}

3. Omitting Array Size (Auto-Detection)

#include <stdio.h>
int main() {
int numbers[] = {5, 10, 15, 20, 25};  // Size = 5 (auto-detected)
int size = sizeof(numbers) / sizeof(numbers[0]);
printf("Array size: %d\n", size);     // 5
printf("Numbers: ");
for(int i = 0; i < size; i++) {
printf("%d ", numbers[i]);
}
return 0;
}

4. Partial Initialization with Zero Fill

#include <stdio.h>
int main() {
int arr[8] = {1, 2, 3};  // arr[0]=1, arr[1]=2, arr[2]=3, rest=0
for(int i = 0; i < 8; i++) {
printf("arr[%d] = %d\n", i, arr[i]);
}
// Output: 1, 2, 3, 0, 0, 0, 0, 0
return 0;
}

5. Initialize All Elements to Zero

int arr[10] = {0};   // All 10 elements are 0
int arr2[5] = {};    // All 5 elements are 0 (C99+)

Array Types with Examples

Integer Array

int ages[4] = {25, 30, 22, 28};

Float Array

float temperatures[7] = {98.6, 99.1, 97.5, 98.0, 99.3, 98.8, 97.9};

Character Array (String)

char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};  // Manual
char message[] = "Hello";                               // Simplified

Accessing Array Elements

Array indexing starts at 0 (first element) and ends at size-1 (last element).

#include <stdio.h>
int main() {
int marks[5] = {75, 82, 91, 68, 87};
// Accessing individual elements
printf("First mark: %d\n", marks[0]);      // 75
printf("Third mark: %d\n", marks[2]);      // 91
printf("Last mark: %d\n", marks[4]);       // 87
// Modifying elements
marks[1] = 85;      // Change second element
printf("Updated marks[1]: %d\n", marks[1]); // 85
return 0;
}

Common Array Operations

Input and Output Array Elements

#include <stdio.h>
int main() {
int arr[5];
// Input using loop
printf("Enter 5 numbers:\n");
for(int i = 0; i < 5; i++) {
printf("arr[%d] = ", i);
scanf("%d", &arr[i]);
}
// Output using loop
printf("\nYou entered: ");
for(int i = 0; i < 5; i++) {
printf("%d ", arr[i]);
}
return 0;
}

Calculate Sum and Average

#include <stdio.h>
int main() {
int numbers[6] = {10, 20, 30, 40, 50, 60};
int sum = 0;
for(int i = 0; i < 6; i++) {
sum += numbers[i];
}
float average = sum / 6.0;
printf("Sum = %d\n", sum);        // 210
printf("Average = %.2f\n", average); // 35.00
return 0;
}

Find Largest Element

#include <stdio.h>
int main() {
int arr[5] = {23, 56, 12, 89, 45};
int max = arr[0];
for(int i = 1; i < 5; i++) {
if(arr[i] > max) {
max = arr[i];
}
}
printf("Largest element: %d\n", max);  // 89
return 0;
}

Size of Array: sizeof() Operator

#include <stdio.h>
int main() {
int arr[10];
int size_in_bytes = sizeof(arr);
int element_size = sizeof(arr[0]);
int length = size_in_bytes / element_size;
printf("Array size in bytes: %d\n", size_in_bytes);  // 40 (if int=4 bytes)
printf("Element size: %d\n", element_size);          // 4
printf("Number of elements: %d\n", length);          // 10
return 0;
}

Multi-Dimensional Arrays (2D)

#include <stdio.h>
int main() {
// 2D array: 3 rows, 4 columns
int matrix[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
// Accessing elements
printf("matrix[1][2] = %d\n", matrix[1][2]);  // 7 (row 1, col 2)
// Display entire matrix
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 4; j++) {
printf("%3d ", matrix[i][j]);
}
printf("\n");
}
return 0;
}

Common Mistakes to Avoid

MistakeWrongCorrect
Index out of boundsint arr[5]; arr[5]=10;arr[4]=10;
Negative indexarr[-1]=5;Use positive index
Wrong initializationint arr[5]=0;int arr[5]={0};
Missing semicolonint arr[5]int arr[5];
Variable size (old C)int n=5; int arr[n];Use constant or dynamic allocation

Quick Reference Table

DeclarationMeaningValid Indexes
int a[10];10 integers0 to 9
float b[5];5 floats0 to 4
char c[20];20 chars0 to 19
double d[100];100 doubles0 to 99
int e[] = {1,2,3};Size auto = 30 to 2

Key Points to Remember

  1. Array index always starts at 0
  2. All elements must be same data type
  3. Elements are stored in continuous memory
  4. Array size must be a constant (except variable-length arrays in C99)
  5. No bounds checking - you must ensure index is valid
  6. Array name is a pointer to first element
  7. Never access arr[size] (last valid index is size-1)

Complete Guide to Core & Advanced C Programming Concepts (Functions, Strings, Arrays, Loops, I/O, Control Flow)

https://macronepal.com/bash/building-blocks-of-c-a-complete-guide-to-functions/
Explains how functions in C work as reusable blocks of code, including declaration, definition, parameters, return values, and modular programming structure.

https://macronepal.com/bash/the-heart-of-text-processing-a-complete-guide-to-strings-in-c-2/
Explains how strings are handled in C using character arrays, string manipulation techniques, and common library functions for text processing.

https://macronepal.com/bash/the-cornerstone-of-data-organization-a-complete-guide-to-arrays-in-c/
Explains arrays in C as structured memory storage for multiple values, including indexing, initialization, and efficient data organization.

https://macronepal.com/bash/guaranteed-execution-a-complete-guide-to-the-do-while-loop-in-c/
Explains the do-while loop in C, where the loop body executes at least once before checking the condition.

https://macronepal.com/bash/mastering-iteration-a-complete-guide-to-the-for-loop-in-c/
Explains the for loop in C, including initialization, condition checking, and increment/decrement for controlled iteration.

https://macronepal.com/bash/mastering-iteration-a-complete-guide-to-while-loops-in-c/
Explains the while loop in C, focusing on condition-based repetition and proper loop control mechanisms.

https://macronepal.com/bash/beyond-if-else-a-complete-guide-to-switch-case-in-c/
Explains switch-case statements in C, enabling multi-branch decision-making based on variable values.

https://macronepal.com/bash/mastering-conditional-logic-a-complete-guide-to-if-else-statements-in-c/
Explains if-else statements in C for decision-making and controlling program flow based on conditions.

https://macronepal.com/bash/mastering-the-fundamentals-a-complete-guide-to-arithmetic-operations-in-c/
Explains arithmetic operations in C such as addition, subtraction, multiplication, division, and operator precedence.

https://macronepal.com/bash/foundation-of-c-programming-a-complete-guide-to-basic-input-output/
Explains basic input and output in C using scanf and printf for interacting with users and displaying results.

Online C Code Compiler
https://macronepal.com/free-online-c-code-compiler-2/

Leave a Reply

Your email address will not be published. Required fields are marked *


Macro Nepal Helper