This section on C++ language interview questions and answers on “Pointers into Arrays”. One shall practice these interview questions to improve their C++ programming skills needed for various interviews (campus interviews, walk-in interviews, company interviews), placements, entrance exams and other competitive exams. These questions can be attempted by anyone focusing on learning C++ programming language. They can be a beginner, fresher, engineering graduate or an experienced IT professional. Our C++ language interview questions come with the detailed explanation of the answers which helps in better understanding of C++ concepts.
Here is a listing of C++ language interview questions “Pointers into Arrays” along with answers, explanations and/or solutions:
1. What is the meaning of the following declaration?
int(*p[5])();
a) p is pointer to function
b) p is array of pointer to function
c) p is pointer to such function which return type is the array
d) p is pointer to array of function
Answer: b
Clarification: In the above declaration the variable p is the array, not the pointer.
2. What is size of generic pointer in C++ (in 32-bit platform)?
a) 2
b) 4
c) 8
d) 0
Answer: b
Clarification: Size of any type of pointer is 4 bytes in 32-bit platforms.
3. What will be the output of the following C++ code?
-
#include
-
using namespace std;
-
int main()
-
{
-
int a[2][4] = {3, 6, 9, 12, 15, 18, 21, 24};
-
cout << *(a[1] + 2) << *(*(a + 1) + 2) << 2[1[a]];
-
return 0;
-
}
a) 15 18 21
b) 21 21 21
c) 24 24 24
d) Compile time error
Answer: b
Clarification: a[1][2] means 1 * (4)+2 = 6th element of an array starting from zero.
Output:
$ g++ point.cpp
$ a.out
21 21 21
4. What will be the output of the following C++ code?
-
#include
-
using namespace std;
-
int main()
-
{
-
int i;
-
const char *arr[] = {"C", "C++", "Java", "VBA"};
-
const char *(*ptr)[4] = &arr;
-
cout << ++(*ptr)[2];
-
return 0;
-
}
a) ava
b) java
c) c++
d) compile time error
Answer: a
Clarification: In this program we are moving the pointer from first position to second position and printing the remaining value.
Output:
$ g++ point1.cpp
$ a.out
ava
5. What will be the output of the following C++ code?
-
#include
-
using namespace std;
-
int main()
-
{
-
int arr[] = {4, 5, 6, 7};
-
int *p = (arr + 1);
-
cout << *p;
-
return 0;
-
}
a) 4
b) 5
c) 6
d) 7
Answer: b
Clarification: In this program, we are making the pointer point to next value and printing it.
$ g++ point3.cpp
$ a.out
5
6. What will be the output of the following C++ code?
-
#include
-
using namespace std;
-
int main()
-
{
-
int arr[] = {4, 5, 6, 7};
-
int *p = (arr + 1);
-
cout << arr;
-
return 0;
-
}
a) 4
b) 5
c) address of arr
d) 7
Answer: c
Clarification: As we counted to print only arr, it will print the address of the array.
Output:
$ g++ point2.cpp
$ a.out
0xbfb1cff
7. What will be the output of the following C++ code?
-
#include
-
using namespace std;
-
int main ()
-
{
-
int numbers[5];
-
int * p;
-
p = numbers; *p = 10;
-
p++; *p = 20;
-
p = &numbers[2]; *p = 30;
-
p = numbers + 3; *p = 40;
-
p = numbers; *(p + 4) = 50;
-
for (int n = 0; n < 5; n++)
-
cout << numbers[n] << ",";
-
return 0;
-
}
a) 10,20,30,40,50,
b) 1020304050
c) compile error
d) runtime error
Answer: a
Clarification: In this program, we are just assigning a value to the array and printing it and immediately dereferencing it.
Output:
$ g++ point4.cpp
$ a.out
10,20,30,40,50,
8. What will be the output of the following C++ code?
-
#include
-
using namespace std;
-
int main()
-
{
-
int arr[] = {4, 5, 6, 7};
-
int *p = (arr + 1);
-
cout << *arr + 9;
-
return 0;
-
}
a) 12
b) 5
c) 13
d) error
Answer: c
Clarification: In this program, we are adding the value 9 to the initial value of the array, So it’s printing as 13.
Output:
$ g++ point5.cpp
$ a.out
13