我写了以下代码:
#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;
}
这个程序的目的是打印基本数据类型的大小,我认为我已经完成了。该程序的另一个目的是打印指向这些数据类型的指针的大小。我很难搞清楚如何做到这一点。我知道指针是一个变量,它存储另一个变量的地址,指针涉及deference运算符(*)。有人可以提供建议吗?我不是在寻找答案,只是在正确的方向上轻推。
答案 0 :(得分:1)
int *p; // p is a pointer to an int
因此指针的大小为:sizeof p
,您可以将其打印为:
cout << "The size of int pointer is: " << sizeof p << endl;
这是你需要打印其他指针&#39;尺寸。
取消引用仅在您想要访问指针所指向的内容时才会执行。 E.g。
int i = 5;
int *p = &i;
*p = 6;
*p = *p + 1;
//etc
在这里,您只想获得指针的大小。所以不需要解除引用。