
Database System Concepts
7th Edition
ISBN: 9780078022159
Author: Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher: McGraw-Hill Education
expand_more
expand_more
format_list_bulleted
Question
Explain step by step
![```cpp
Run the following program and make sure that you can explain the output,
#include <iostream>
using namespace std;
int main()
{
int b[3][2];
cout << sizeof(b) << endl; // -> what will be printed on each line?
cout << sizeof(b + 0) << endl;
cout << sizeof(*(b + 0)) << endl;
cout << " b is: " << b << endl;
cout << " b+1 is: " << b + 1 << endl;
cout << " &b is: " << &b << endl;
cout << " &b+1 is: " << &b + 1 << endl;
return 0;
}
```
### Explanation:
1. `sizeof(b)`: Returns the total size of the 2D array `b`. Since `b` is a 3x2 array and assuming each `int` is 4 bytes, this would be `3 * 2 * 4 = 24` bytes.
2. `sizeof(b + 0)`: Returns the size of a pointer to the first element of `b`. This is typically the size of a pointer on the system (e.g., 8 bytes on a 64-bit system).
3. `sizeof(*(b + 0))`: Returns the size of the first sub-array of `b`, which is an array of 2 integers (2 * 4 = 8 bytes).
4. `" b is: " << b`: Prints the address of the first element of the array `b`.
5. `" b+1 is: " << b + 1`: Prints the address of the second row of `b`. Incrementing `b` skips over an entire row (2 integers).
6. `" &b is: " << &b`: Prints the address of the entire array `b`.
7. `" &b+1 is: " << &b + 1`: Prints the address one past the end of the entire array `b`. Incrementing `&b` skips over the whole 2D array, moving the pointer by `sizeof(b)` bytes.](https://content.bartleby.com/qna-images/question/38650a9c-63f5-423f-8b89-b03c0dad949f/f350fa84-0baa-4bd8-92c4-bef67a9d7c31/skksmhe_thumbnail.jpeg)
Transcribed Image Text:```cpp
Run the following program and make sure that you can explain the output,
#include <iostream>
using namespace std;
int main()
{
int b[3][2];
cout << sizeof(b) << endl; // -> what will be printed on each line?
cout << sizeof(b + 0) << endl;
cout << sizeof(*(b + 0)) << endl;
cout << " b is: " << b << endl;
cout << " b+1 is: " << b + 1 << endl;
cout << " &b is: " << &b << endl;
cout << " &b+1 is: " << &b + 1 << endl;
return 0;
}
```
### Explanation:
1. `sizeof(b)`: Returns the total size of the 2D array `b`. Since `b` is a 3x2 array and assuming each `int` is 4 bytes, this would be `3 * 2 * 4 = 24` bytes.
2. `sizeof(b + 0)`: Returns the size of a pointer to the first element of `b`. This is typically the size of a pointer on the system (e.g., 8 bytes on a 64-bit system).
3. `sizeof(*(b + 0))`: Returns the size of the first sub-array of `b`, which is an array of 2 integers (2 * 4 = 8 bytes).
4. `" b is: " << b`: Prints the address of the first element of the array `b`.
5. `" b+1 is: " << b + 1`: Prints the address of the second row of `b`. Incrementing `b` skips over an entire row (2 integers).
6. `" &b is: " << &b`: Prints the address of the entire array `b`.
7. `" &b+1 is: " << &b + 1`: Prints the address one past the end of the entire array `b`. Incrementing `&b` skips over the whole 2D array, moving the pointer by `sizeof(b)` bytes.
Expert Solution

This question has been solved!
Explore an expertly crafted, step-by-step solution for a thorough understanding of key concepts.
Step by stepSolved in 3 steps with 1 images

Knowledge Booster
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.Similar questions
arrow_back_ios
arrow_forward_ios
Recommended textbooks for you
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education

Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education

Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON

Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON

C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON

Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning

Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education