We use array initialization to create a list of values stored together in memory. It helps us organize data so we can use it easily later.
Array initialization in C++
class ArrayExample { public: int numbers[5]; // Declare an array of 5 integers void initialize() { // Method 1: Initialize with values at declaration int fixedNumbers[5] = {1, 2, 3, 4, 5}; // Method 2: Initialize all elements to zero int zeros[5] = {}; // Method 3: Initialize some elements, rest are zero int partial[5] = {10, 20}; // Method 4: Initialize using a loop for (int i = 0; i < 5; i++) { numbers[i] = i * 10; } } };
Arrays have fixed size, so you must decide how many elements it holds when you declare it.
If you initialize fewer elements than the size, the rest are set to zero automatically.
int emptyArray[3] = {};
int oneElement[1] = {42};
int startEnd[4] = {5, 0, 0, 10};
int loopArray[5]; for (int i = 0; i < 5; i++) { loopArray[i] = i + 1; }
This program shows two ways to initialize arrays: directly with values and by filling with a loop. It prints both arrays to show the results.
#include <iostream> int main() { // Declare and initialize an array with values int fixedNumbers[5] = {1, 2, 3, 4, 5}; // Declare an empty array and fill it with a loop int loopNumbers[5]; for (int index = 0; index < 5; index++) { loopNumbers[index] = (index + 1) * 10; } // Print fixedNumbers std::cout << "fixedNumbers: "; for (int index = 0; index < 5; index++) { std::cout << fixedNumbers[index] << " "; } std::cout << std::endl; // Print loopNumbers std::cout << "loopNumbers: "; for (int index = 0; index < 5; index++) { std::cout << loopNumbers[index] << " "; } std::cout << std::endl; return 0; }
Time complexity to initialize with a loop is O(n), where n is the array size.
Space complexity is O(n) because the array stores n elements.
Common mistake: forgetting to initialize elements, which can leave garbage values if not zero-initialized.
Use direct initialization when values are known; use loops when values depend on calculations.
Arrays hold multiple values of the same type in a fixed size.
You can initialize arrays directly with values or fill them later using loops.
Uninitialized elements default to zero if you use empty braces {}.
Practice
Solution
Step 1: Understand array initialization with empty braces
Using empty braces {} initializes all elements to zero by default in C++.Step 2: Compare options
int arr[5] = {}; uses {} which sets all elements to zero. int arr[5] = 0; is invalid syntax for array initialization. int arr[5] = {1, 2, 3, 4, 5}; initializes with specific values. int arr[5]; leaves elements uninitialized.Final Answer:
int arr[5] = {}; -> Option AQuick Check:
Empty braces {} zero-initialize arrays [OK]
- Thinking int arr[5] = 0; initializes the array to zero
- Leaving array uninitialized expecting zeros
- Confusing initialization with assignment
Solution
Step 1: Check array declaration syntax
Arrays require specifying size and initialization with braces {} containing values.Step 2: Validate each option
double arr[3] = {1.1, 2.2, 3.3}; correctly declares a double array of size 3 with values in braces. double arr = {1.1, 2.2, 3.3}; misses size. double arr[3] = (1.1, 2.2, 3.3); uses parentheses which is invalid. double arr[3] = [1.1, 2.2, 3.3]; uses square brackets which is invalid in C++.Final Answer:
double arr[3] = {1.1, 2.2, 3.3}; -> Option CQuick Check:
Use braces {} with size for array initialization [OK]
- Omitting array size in declaration
- Using parentheses or square brackets for initialization
- Assigning values without braces
int arr[4] = {5, 10};
for(int i = 0; i < 4; i++) {
std::cout << arr[i] << " ";
}Solution
Step 1: Understand partial initialization of arrays
When fewer elements are provided than the array size, remaining elements are zero-initialized.Step 2: Analyze the output loop
arr[0] = 5, arr[1] = 10, arr[2] = 0, arr[3] = 0. Loop prints all four elements separated by spaces.Final Answer:
5 10 0 0 -> Option DQuick Check:
Partial init fills rest with zeros [OK]
- Assuming uninitialized elements have garbage values
- Expecting compilation error for partial init
- Confusing output spacing
int arr[3];
arr = {1, 2, 3};Solution
Step 1: Understand array assignment rules in C++
Arrays cannot be assigned new values after declaration using brace initialization syntax.Step 2: Identify correct way to assign values
Values must be assigned element-wise or initialized at declaration. Direct assignment with braces causes error.Final Answer:
Arrays cannot be assigned values after declaration using braces -> Option AQuick Check:
Arrays only initialized at declaration with braces [OK]
- Trying to assign arrays with brace syntax after declaration
- Confusing arrays with std::vector assignment
- Using parentheses instead of braces
Solution
Step 1: Analyze initialization options
int arr[2][3] = {{7,7,7}}; sets first row to 7,7,7 and second row to 0,0,0. int arr[2][3] = {7}; sets only first element to 7, rest zero. int arr[2][3] = {{7}, {7}}; sets first element of each row to 7, rest zero. int arr[2][3]; for(int i=0; i<2; i++) for(int j=0; j<3; j++) arr[i][j] = 7; uses loops to assign 7 to every element.Step 2: Identify the best approach for uniform value
int arr[2][3]; for(int i=0; i<2; i++) for(int j=0; j<3; j++) arr[i][j] = 7; is the most scalable and clear way to set all elements to 7 regardless of array size.Final Answer:
int arr[2][3]; for(int i=0; i<2; i++) for(int j=0; j<3; j++) arr[i][j] = 7; -> Option BQuick Check:
Use loops to fill multi-dimensional arrays uniformly [OK]
- Assuming partial brace init sets all elements
- Using single brace sets only first element
- Not using loops for uniform initialization
Ready to prove it?
Pass the test and this pattern moves unknown
