Программа фундаментальных типов данных

Я написал следующий код:

#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

Решение

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

Таким образом, размер указателя будет: sizeof p, который вы можете напечатать как:

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

Это то, что вам нужно для печати размеров других указателей.

Разыменование выполняется только тогда, когда вы хотите получить доступ к тому, на что указывает указатель.
Например.

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

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

Здесь вы просто хотите получить размер указателей. Таким образом, разыменование не требуется.

1

Другие решения


По вопросам рекламы [email protected]