One-dimensional arrays help you store many values of the same type in a single list. This makes it easy to organize and use data like numbers or letters together.
One-dimensional arrays in C
/* Define an array of integers with 5 elements */ int numbers[5]; /* Define and initialize an array of characters */ char letters[4] = {'a', 'b', 'c', 'd'};
The number inside the square brackets [] tells how many items the array can hold.
Array indexes start at 0, so the first element is numbers[0].
int scores[3]; // Empty array of 3 integers, values are garbage until assigned
int primes[5] = {2, 3, 5, 7, 11}; // Array with 5 prime numbers initialized
char word[6] = {'H', 'e', 'l', 'l', 'o', '\0'}; // Array holding a string with null terminator
int emptyArray[0]; // Edge case: array with zero length (not standard in C, but allowed as a compiler extension in some compilers)
This program creates an array to hold temperatures for 5 days. It prints all the temperatures, changes the temperature for day 3, and prints the updated list.
#include <stdio.h> int main() { // Create an array of 5 integers int temperatures[5] = {23, 25, 22, 20, 24}; // Print all temperatures printf("Temperatures for the week:\n"); for (int index = 0; index < 5; index++) { printf("Day %d: %d degrees\n", index + 1, temperatures[index]); } // Change the temperature of day 3 temperatures[2] = 26; // Print updated temperatures printf("\nUpdated temperatures:\n"); for (int index = 0; index < 5; index++) { printf("Day %d: %d degrees\n", index + 1, temperatures[index]); } return 0; }
Accessing an array index outside its range causes undefined behavior and can crash your program.
Arrays have fixed size; you cannot change their length after creation.
Time complexity to access any element by index is O(1), which means very fast.
One-dimensional arrays store multiple values of the same type in order.
Use arrays when you need to keep and work with lists of data.
Remember array indexes start at 0 and size is fixed.
Practice
Solution
Step 1: Understand array indexing in C
In C, arrays always start indexing from 0, meaning the first element is at index 0.Step 2: Confirm the starting index
This is a fixed rule in C and does not depend on array size or other factors.Final Answer:
0 -> Option AQuick Check:
Array indexing starts at 0 [OK]
- Thinking arrays start at 1 like in some other languages
- Assuming negative indexes are valid
- Believing index depends on array size
Solution
Step 1: Recall C array declaration syntax
In C, arrays are declared by specifying the type, name, and size in square brackets, like int arr[5];Step 2: Check each option
int arr[5]; matches the correct syntax. int arr(); uses parentheses which is for functions. int arr = 5; assigns a single int, not an array. array int arr[5]; uses invalid keyword 'array'.Final Answer:
int arr[5]; -> Option DQuick Check:
Array declaration uses square brackets [OK]
- Using parentheses instead of square brackets
- Assigning a single value instead of declaring array
- Using invalid keywords like 'array'
int arr[3] = {10, 20, 30};
printf("%d", arr[1]);Solution
Step 1: Identify the array elements and indexes
The array arr has elements: arr[0]=10, arr[1]=20, arr[2]=30.Step 2: Understand the printf statement
printf prints the value at arr[1], which is 20.Final Answer:
20 -> Option CQuick Check:
arr[1] = 20 [OK]
- Confusing index 1 with index 0
- Expecting output 10 or 30 incorrectly
- Thinking code causes compilation error
int arr[4]; arr[4] = 10;
Solution
Step 1: Check array size and indexing
The array arr has size 4, so valid indexes are 0,1,2,3 only.Step 2: Identify the invalid index usage
arr[4] accesses the fifth element, which is outside the array bounds causing undefined behavior.Final Answer:
Array index out of bounds -> Option AQuick Check:
Index must be less than array size [OK]
- Using index equal to array size
- Ignoring zero-based indexing
- Assuming no error for out-of-bounds access
int nums[5] = {1, 2, 3, 4, 5};, which code snippet correctly calculates the sum of all elements?Solution
Step 1: Understand array size and valid indexes
The array nums has 5 elements with indexes 0 to 4.Step 2: Analyze each loop condition
int sum = 0; for(int i = 0; i <= 5; i++) sum += nums[i]; uses i <= 5 which accesses nums[5] (out of bounds). int sum = 0; for(int i = 0; i < 5; i++) sum += nums[i]; uses i < 5 which correctly iterates from 0 to 4. int sum = 0; for(int i = 1; i < 5; i++) sum += nums[i]; starts at 1, missing nums[0]. int sum = 0; for(int i = 0; i < 4; i++) sum += nums[i]; stops at 4, missing nums[4].Final Answer:
int sum = 0; for(int i = 0; i < 5; i++) sum += nums[i]; -> Option BQuick Check:
Loop from 0 to less than size sums all elements [OK]
- Using <= size causing out-of-bounds access
- Starting loop at 1 missing first element
- Stopping loop early missing last element
Ready to prove it?
Pass the test and this pattern moves unknown
