Bird
Raised Fist0
Cprogramming~5 mins

One-dimensional arrays in C

Choose your learning style10 modes available
Introduction

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.

When you want to keep a list of student scores in a test.
When you need to store daily temperatures for a week.
When you want to hold a sequence of characters as a word or sentence.
When you want to process a list of items one by one.
When you want to perform calculations on a fixed number of values.
Syntax
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].

Examples
This creates an array of 3 integers but does not set their values yet.
C
int scores[3];

// Empty array of 3 integers, values are garbage until assigned
Here, the array is created and filled with 5 prime numbers right away.
C
int primes[5] = {2, 3, 5, 7, 11};

// Array with 5 prime numbers initialized
This array holds the word "Hello" as characters, ending with '\0' to mark the end.
C
char word[6] = {'H', 'e', 'l', 'l', 'o', '\0'};

// Array holding a string with null terminator
Some compilers allow zero-length arrays as an extension, but they cannot hold any elements.
C
int emptyArray[0];

// Edge case: array with zero length (not standard in C, but allowed as a compiler extension in some compilers)
Sample Program

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.

C
#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;
}
OutputSuccess
Important Notes

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.

Summary

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

(1/5)
1. What is the starting index of a one-dimensional array in C?
easy
A. 0
B. 1
C. -1
D. Depends on the array size

Solution

  1. Step 1: Understand array indexing in C

    In C, arrays always start indexing from 0, meaning the first element is at index 0.
  2. Step 2: Confirm the starting index

    This is a fixed rule in C and does not depend on array size or other factors.
  3. Final Answer:

    0 -> Option A
  4. Quick Check:

    Array indexing starts at 0 [OK]
Hint: Remember: C arrays always start at zero index [OK]
Common Mistakes:
  • Thinking arrays start at 1 like in some other languages
  • Assuming negative indexes are valid
  • Believing index depends on array size
2. Which of the following is the correct way to declare an integer array of size 5 in C?
easy
A. int arr = 5;
B. int arr();
C. array int arr[5];
D. int arr[5];

Solution

  1. 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];
  2. 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'.
  3. Final Answer:

    int arr[5]; -> Option D
  4. Quick Check:

    Array declaration uses square brackets [OK]
Hint: Use square brackets for array size in declaration [OK]
Common Mistakes:
  • Using parentheses instead of square brackets
  • Assigning a single value instead of declaring array
  • Using invalid keywords like 'array'
3. What will be the output of the following code?
int arr[3] = {10, 20, 30};
printf("%d", arr[1]);
medium
A. 10
B. 30
C. 20
D. Compilation error

Solution

  1. Step 1: Identify the array elements and indexes

    The array arr has elements: arr[0]=10, arr[1]=20, arr[2]=30.
  2. Step 2: Understand the printf statement

    printf prints the value at arr[1], which is 20.
  3. Final Answer:

    20 -> Option C
  4. Quick Check:

    arr[1] = 20 [OK]
Hint: Remember array index 1 is second element [OK]
Common Mistakes:
  • Confusing index 1 with index 0
  • Expecting output 10 or 30 incorrectly
  • Thinking code causes compilation error
4. Find the error in this code snippet:
int arr[4];
arr[4] = 10;
medium
A. Array index out of bounds
B. Missing semicolon
C. Wrong data type
D. No error

Solution

  1. Step 1: Check array size and indexing

    The array arr has size 4, so valid indexes are 0,1,2,3 only.
  2. Step 2: Identify the invalid index usage

    arr[4] accesses the fifth element, which is outside the array bounds causing undefined behavior.
  3. Final Answer:

    Array index out of bounds -> Option A
  4. Quick Check:

    Index must be less than array size [OK]
Hint: Index must be less than array size [OK]
Common Mistakes:
  • Using index equal to array size
  • Ignoring zero-based indexing
  • Assuming no error for out-of-bounds access
5. Given the array declaration int nums[5] = {1, 2, 3, 4, 5};, which code snippet correctly calculates the sum of all elements?
hard
A. int sum = 0; for(int i = 0; i <= 5; i++) sum += nums[i];
B. int sum = 0; for(int i = 0; i < 5; i++) sum += nums[i];
C. int sum = 0; for(int i = 1; i < 5; i++) sum += nums[i];
D. int sum = 0; for(int i = 0; i < 4; i++) sum += nums[i];

Solution

  1. Step 1: Understand array size and valid indexes

    The array nums has 5 elements with indexes 0 to 4.
  2. 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].
  3. Final Answer:

    int sum = 0; for(int i = 0; i < 5; i++) sum += nums[i]; -> Option B
  4. Quick Check:

    Loop from 0 to less than size sums all elements [OK]
Hint: Loop from 0 to less than array size for all elements [OK]
Common Mistakes:
  • Using <= size causing out-of-bounds access
  • Starting loop at 1 missing first element
  • Stopping loop early missing last element
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard