Array initialization means giving values to the elements of an array when you create it. This sets the starting values for the array.
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 set to zero automatically.
Click to reveal answer
intermediate
Can you initialize an array without specifying its size? How?
Yes. You can let the compiler count the values: int arr[] = {1, 2, 3}; The size becomes 3 automatically.
Click to reveal answer
intermediate
What is the difference between partial initialization and no initialization of an array?
Partial initialization sets some elements and the rest become zero. No initialization leaves elements with garbage (random) values.
Click to reveal answer
How do you initialize an array of 4 integers with all zeros in C++?
Aint arr[4] = 0;
Bint arr[4] = {0};
Cint arr[4] = {};
Dint arr[4];
✗ Incorrect
Using {0} sets the first element to zero and the rest are also zero by default. Using {} also zero-initializes all elements.
What is the size of the array: int arr[] = {10, 20, 30}; ?
A0
B3
C10
DUndefined
✗ Incorrect
The compiler counts the values and sets the size to 3.
If you write int arr[5] = {1, 2}; what are the values of arr[2], arr[3], and arr[4]?
A1, 2, 3
B1, 2, 0
CGarbage values
D0, 0, 0
✗ Incorrect
Elements not initialized explicitly are set to zero.
Which of these is NOT a valid way to initialize an array in C++?
Aint arr[3] = {5, 6, 7};
Bint arr[] = {1, 2, 3};
Cint arr[3] = 1, 2, 3;
Dint arr[3] = {};
✗ Incorrect
You must use braces {} to initialize arrays, not commas alone.
What is the value of arr[0] after this code? int arr[3] = {};
A0
BGarbage
CUninitialized
D1
✗ Incorrect
Empty braces {} initialize all elements to zero.
Explain how to initialize an array in C++ and what happens if you provide fewer values than the array size.
Think about using braces {} and what the compiler does with missing values.
You got /3 concepts.
Describe the difference between initializing an array with all zeros and leaving it uninitialized.
Consider what values you get if you don't set any values explicitly.
You got /3 concepts.
Practice
(1/5)
1. Which of the following correctly initializes an integer array of size 5 with all elements set to zero in C++?
easy
A. int arr[5] = {};
B. int arr[5] = {1, 2, 3, 4, 5};
C. int arr[5] = 0;
D. int arr[5];
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 A
Quick Check:
Empty braces {} zero-initialize arrays [OK]
Hint: Use empty braces {} to zero-initialize arrays quickly [OK]
Common Mistakes:
Thinking int arr[5] = 0; initializes the array to zero
Leaving array uninitialized expecting zeros
Confusing initialization with assignment
2. Which of the following is the correct syntax to initialize an array of 3 doubles with values 1.1, 2.2, and 3.3 in C++?
easy
A. double arr[3] = (1.1, 2.2, 3.3);
B. double arr = {1.1, 2.2, 3.3};
C. double arr[3] = {1.1, 2.2, 3.3};
D. double arr[3] = [1.1, 2.2, 3.3];
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 C
Quick Check:
Use braces {} with size for array initialization [OK]
Hint: Always use braces {} and specify size when initializing arrays [OK]
Common Mistakes:
Omitting array size in declaration
Using parentheses or square brackets for initialization
Assigning values without braces
3. What is the output of the following C++ code?
int arr[4] = {5, 10};
for(int i = 0; i < 4; i++) {
std::cout << arr[i] << " ";
}
medium
A. 5 10 5 10
B. Compilation error
C. 5 10 garbage garbage
D. 5 10 0 0
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 D
Quick Check:
Partial init fills rest with zeros [OK]
Hint: Partial array init fills missing elements with zero [OK]
Common Mistakes:
Assuming uninitialized elements have garbage values
Expecting compilation error for partial init
Confusing output spacing
4. Identify the error in the following C++ code snippet:
int arr[3];
arr = {1, 2, 3};
medium
A. Arrays cannot be assigned values after declaration using braces
B. Array size is missing
C. Braces should be replaced with parentheses
D. No error, code is correct
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 A
Quick Check:
Arrays only initialized at declaration with braces [OK]
Hint: You can only initialize arrays at declaration, not assign with braces later [OK]
Common Mistakes:
Trying to assign arrays with brace syntax after declaration
Confusing arrays with std::vector assignment
Using parentheses instead of braces
5. You want to initialize a 2D array of size 2x3 with all elements set to 7 in C++. Which code snippet correctly achieves this?
hard
A. int arr[2][3] = {7};
B. int arr[2][3]; for(int i=0; i<2; i++) for(int j=0; j<3; j++) arr[i][j] = 7;
C. int arr[2][3] = {{7}, {7}};
D. int arr[2][3] = {{7,7,7}};
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 B
Quick Check:
Use loops to fill multi-dimensional arrays uniformly [OK]
Hint: Use nested loops to fill all elements with the same value [OK]
Common Mistakes:
Assuming partial brace init sets all elements
Using single brace sets only first element
Not using loops for uniform initialization
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.