MatthewS
MatthewS

Reputation: 485

Fundamental Data Types Program

I wrote the following code:

#include <iostream>
#include <iomanip>

using namespace std;

int main(){

    char c;
    int i;
    short int j;
    long int k;
    float f;
    double d;
    long double e;

    cout << "The size of char is: " << sizeof c << endl;
    cout << "The size of int is: " << sizeof i << endl;
    cout << "The size of short int is: " << sizeof j << endl;
    cout << "The size of long int is: " << sizeof k << endl;
    cout << "The size of float is: " << sizeof f << endl;
    cout << "The size of double is: " << sizeof d << endl;
    cout << "The size of long double is: " << sizeof e << endl;

    system("pause");
    return 0;
}

The purpose of this program is to print out the size of the fundamental data types, which I think I have accomplished. The other purpose of this program is to print the size of the pointer to each of these data types. I'm having a hard time figuring out how to do this. I understand that a pointer is a variable which stores the address of another variable and that pointers involve the deference operator (*). Can anyone please provide a suggestion? I'm not looking for the answer, just a nudge in the right direction.

Upvotes: 0

Views: 178

Answers (1)

P.P
P.P

Reputation: 121427

int *p; // p is a pointer to an int

So sizeof the pointer would be: sizeof p, which you could print as:

cout << "The size of int pointer is: " << sizeof p << endl;

This is what you need to do print other pointers' sizes.

Dereferencing is only done when you want to access what a pointer is pointing to. E.g.

int i = 5;
int *p = &i;

*p = 6;
*p = *p + 1; 
//etc

Here, you just want to get the size of the pointers. So no dereferencing is needed.

Upvotes: 1

Related Questions