Bird
Raised Fist0
Cprogramming~5 mins

Array initialization in C - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is array initialization in C?
Array initialization is the process of assigning values to an array at the time of its creation.
Click to reveal answer
beginner
How do you initialize an integer array of size 5 with values 1, 2, 3, 4, 5 in C?
int arr[5] = {1, 2, 3, 4, 5};
Click to reveal answer
intermediate
What happens if you initialize an array with fewer values than its size?
The remaining elements are automatically set to zero.
Click to reveal answer
intermediate
Can you initialize an array without specifying its size? How?
Yes, by letting the compiler count the values: int arr[] = {1, 2, 3}; The size is 3 automatically.
Click to reveal answer
intermediate
What is the difference between partial and full array initialization?
Full initialization assigns values to all elements. Partial initialization assigns values to some elements; the rest are zeroed.
Click to reveal answer
How do you initialize an array of 4 integers with all zeros in C?
Aint arr[4];
Bint arr[4] = {0};
Cint arr[4] = {};
Dint arr[4] = 0;
What is the size of the array in: int arr[] = {5, 10, 15}; ?
A0
B5
C3
DUndefined
If you write int arr[5] = {1, 2}; what are the values of arr[2], arr[3], and arr[4]?
A0, 0, 0
B1, 2, 0
CUndefined
D1, 2, 3
Which of these is NOT a valid way to initialize an array in C?
Aint arr[3] = {1, 2, 3};
Bint arr[3] = {0};
Cint arr[] = {4, 5, 6};
Dint arr[3] = {1, 2, 3, 4};
What is the value of arr[0] after this initialization? int arr[3] = {};
A0
BGarbage value
C1
DUndefined
Explain how to initialize an array in C and what happens if you provide fewer values than the array size.
Think about how you fill a row of boxes with some candies and leave the rest empty.
You got /3 concepts.
    Describe how the compiler determines the size of an array when you don't specify it explicitly during initialization.
    Imagine counting how many apples you put in a basket to know its size.
    You got /3 concepts.

      Practice

      (1/5)
      1. Which of the following correctly declares and initializes an integer array of size 3 with values 1, 2, and 3 in C?
      easy
      A. int arr = {1, 2, 3};
      B. int arr[3] = {1, 2, 3};
      C. int arr[3] = (1, 2, 3);
      D. int arr[] = 1, 2, 3;

      Solution

      1. Step 1: Understand array declaration syntax

        In C, arrays are declared with a type, name, and size in square brackets, e.g., int arr[3].
      2. Step 2: Check initialization format

        Initialization uses curly braces with comma-separated values, e.g., {1, 2, 3}.
      3. Final Answer:

        int arr[3] = {1, 2, 3}; -> Option B
      4. Quick Check:

        Correct array declaration and initialization [OK]
      Hint: Use curly braces {} with size in brackets [] for arrays [OK]
      Common Mistakes:
      • Missing square brackets for size
      • Using parentheses instead of braces
      • Assigning array without braces
      2. Which of the following is a syntax error when initializing an array in C?
      easy
      A. int nums[4] = {10, 20, 30, 40};
      B. int nums[5] = {0};
      C. int nums[] = {5, 6, 7};
      D. int nums[3] = {1, 2, 3, 4};

      Solution

      1. Step 1: Check array size and initializer count

        Array size is 3 but initializer has 4 values, which is invalid in C.
      2. Step 2: Verify other options

        int nums[4] = {10, 20, 30, 40}; matches size and values, C infers size from initializer, B zero-initializes first element and rest are zero.
      3. Final Answer:

        int nums[3] = {1, 2, 3, 4}; -> Option D
      4. Quick Check:

        Initializer count > array size causes syntax error [OK]
      Hint: Initializer list cannot exceed declared array size [OK]
      Common Mistakes:
      • Providing more initial values than array size
      • Omitting size but giving initializer with extra values
      • Using wrong braces
      3. What is the output of the following C code?
      int arr[5] = {1, 2};
      printf("%d %d %d %d %d", arr[0], arr[1], arr[2], arr[3], arr[4]);
      medium
      A. 1 2 0 0 0
      B. 1 2 garbage garbage garbage
      C. 1 2 3 4 5
      D. Compilation error

      Solution

      1. Step 1: Understand partial initialization

        When fewer values are given, remaining elements are set to zero automatically.
      2. Step 2: Check printed values

        arr[0] = 1, arr[1] = 2, arr[2], arr[3], arr[4] = 0 each.
      3. Final Answer:

        1 2 0 0 0 -> Option A
      4. Quick Check:

        Partial init fills rest with zero [OK]
      Hint: Uninitialized array elements default to zero if partially initialized [OK]
      Common Mistakes:
      • Assuming uninitialized elements have garbage values
      • Expecting compilation error for partial init
      • Confusing array size with initializer count
      4. Identify the error in the following C code snippet:
      int data[3];
      data = {1, 2, 3};
      medium
      A. Missing semicolon after array declaration.
      B. Array size must be omitted when initializing.
      C. Arrays cannot be assigned values after declaration like this.
      D. Braces should be parentheses for assignment.

      Solution

      1. Step 1: Understand array assignment rules

        In C, arrays cannot be assigned values after declaration using = and braces.
      2. Step 2: Check other options

        Semicolon is present, size can be specified, braces are correct for initialization but not assignment.
      3. Final Answer:

        Arrays cannot be assigned values after declaration like this. -> Option C
      4. Quick Check:

        Array assignment after declaration is invalid [OK]
      Hint: Arrays must be initialized at declaration, not assigned later [OK]
      Common Mistakes:
      • Trying to assign array with braces after declaration
      • Confusing array assignment with pointer assignment
      • Using parentheses instead of braces
      5. You want to create an integer array of size 6 where the first two elements are 10 and 20, and the rest are zeros. Which of the following is the best way to initialize it in C?
      hard
      A. int arr[6] = {0}; arr[0] = 10; arr[1] = 20;
      B. int arr[6] = {10, 20, 0, 0, 0, 0};
      C. int arr[6] = {10, 20};
      D. int arr[6]; arr[0] = 10; arr[1] = 20;

      Solution

      1. Step 1: Analyze partial initialization

        int arr[6] = {10, 20}; partially initializes first two elements; rest are zero by default, so it works.
      2. Step 2: Compare with explicit zero initialization and assignment

        int arr[6] = {0}; arr[0] = 10; arr[1] = 20; explicitly zeroes all elements then assigns first two, ensuring clarity and no garbage.
      3. Step 3: Evaluate best practice

        int arr[6] = {0}; arr[0] = 10; arr[1] = 20; is best for clarity and safety; int arr[6] = {10, 20}; works but less explicit; int arr[6] = {10, 20, 0, 0, 0, 0}; is verbose; int arr[6]; arr[0] = 10; arr[1] = 20; leaves uninitialized elements.
      4. Final Answer:

        int arr[6] = {0}; arr[0] = 10; arr[1] = 20; -> Option A
      5. Quick Check:

        Explicit zero init then assign first elements [OK]
      Hint: Zero initialize first, then assign specific elements for clarity [OK]
      Common Mistakes:
      • Assuming partial init always safe without explicit zero
      • Not initializing array before assignment
      • Overwriting zeros with uninitialized values
      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