2014-06-21 47 views
0

我寫了下面的代碼:基本數據類型程序

#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; 
} 

這項計劃的目的是打印出來的基本數據類型,我認爲我已經完成的大小。這個程序的另一個目的是打印指向這些數據類型的指針的大小。我很難弄清楚如何做到這一點。我知道一個指針是一個變量,它存儲另一個變量的地址,並且這個指針包含了參數操作符(*)。任何人都可以提供一個建議嗎?我不是在尋找答案,只是在正確的方向推動。

+2

例如, '的sizeof(K)'?順便說一句,我認爲你會發現這個答案有點無聊;) – U2EF1

回答

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

所以的sizeof指針是:sizeof p,您可以打印爲:

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

這是你需要做打印其它指針的大小是什麼。

提領只有當你想訪問一個指針指向什麼時纔會完成。 例如

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

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

在這裏,你只是想獲得指針的大小。所以不需要解引用。

+0

因此,例如,我可以只做: char * c; // c是指向char的指針 cout <<「char的大小是:」<< sizeof c << endl; cout <<「char指針的大小是:」<< sizeof c << endl; 謝謝你的幫助。 – user3727648

+0

@ user3727648字符的大小應該是'sizeof * c',而指針的大小應該是'sizeof c'。 – 0x499602D2