Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
15 / 15 / 8
Регистрация: 15.08.2013
Сообщений: 190

Размер указателя short int

02.11.2016, 10:36. Показов 2619. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе утро. Возник вопрос почему short int = 8 байт?
Он же должен занимать 2 байта в 32-х разрядной среде.


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
using namespace std;
 
int main()
{
double wages[3]={10000.0,20000.0,30000.0};
short int stacks[3]={3,2,1};
 
double *pw = wages;
short int *ps = &stacks[0];
 
cout<< "pw = "<< pw << " , *pw " << *pw <<"\n\n";
pw = pw+1;
cout << "Добавить 1 к указателю pw:\n";
cout<< "pw = "<< pw << " , *pw " << *pw <<"\n\n";
cout<< "ps = "<< ps << " , *ps " << *ps <<"\n\n";
ps=ps+1;
cout << "Добавить 1 к указателю ps:\n";
cout<< "ps = "<< ps << " , *ps " << *ps <<"\n\n";
 
cout << "Обращение к двум элементам в нотации массива\n";
cout << "stacks[0] "<<stacks[0]<<",stacks[1] "<<stacks[1]<<"\n\n";
 
cout << "Обращение к двум элементам в нотации указателя\n";
cout << "*stacks "<<*stacks<<" ,*(stacks+1) "<<*(stacks+1)<<"\n\n";
 
cout << sizeof(wages) << " = размер массива wages\n";
cout << sizeof(pw) << " = размер указателя pw\n\n";
 
cout << sizeof(stacks) << " = размер массива stacks\n";
cout << sizeof(ps) << " = размер указателя ps\n";
 
 
return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.11.2016, 10:36
Ответы с готовыми решениями:

Размер для данных (int, char, long, double, short, unsigned, float)
Напишите программу, которая будет определять размер для данных (int, char, long, double, short, unsigned, float) и выводить информацию (о...

Напишите программу, которая будет определять размер для данных (int, char, long, double, short, unsigned, float) и выводить информацию
1. Какие типы данных лучше всего использовать для хранения следующих значений: а) возраст человека в текущем году; б) вес человека в...

Разница int, short, unsigned int, unsigned short
Есть например цикл который проходит по массиву в котором 100 элементов. В чем практическая выгода и разница в истоьзовании типов short,...

3
Эксперт С++
 Аватар для Maxim Prishchepa
1936 / 1048 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
02.11.2016, 10:49
не путайте размер объекта и размер указателя на объект, это разные вещи.
short int - действительно 2 байта в 32 разрядной ОС
а вот указатель на что угодно в 32 разрядной ОС 8 байт (4?? я уже забыл )

C++
1
2
3
4
5
6
int main()
{  
    short int i = 0;
    short int * p = &i;    
    std::cout << sizeof(i) <<" ; "<< sizeof(p) <<std::endl;
}
результат: 2 ; 8
1
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12937 / 6804 / 1821
Регистрация: 18.10.2014
Сообщений: 17,219
02.11.2016, 10:52
Цитата Сообщение от MRG_Serejka Посмотреть сообщение
Возник вопрос почему short int = 8 байт?
Он же должен занимать 2 байта в 32-х разрядной среде.
Ничего не понял. О каких "8 байт" идет речь? Этот код выдает 8 только когда идет печать размеров указателей. Что неудивительно, ибо все указатели имеют одинаковый размер. И платформа, очевидно, 64-битная.

Добавлено через 1 минуту
Цитата Сообщение от Maxim Prishchepa Посмотреть сообщение
а вот указатель на что угодно в 32 разрядной ОС 8 байт
Размер указателя на 32-битной платформе обычно 4 байта. 8-байтовый указатель - признак 64-битной платформы.
3
02.11.2016, 11:00

Не по теме:

Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Размер указателя на 32-битной платформе обычно 4 байта. 8-байтовый указатель - признак 64-битной платформы.
Кликните здесь для просмотра всего текста

Вот зараза... видосик не очень работает... в общем ссыль

поправить уже не получится, время истекло :(

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.11.2016, 11:00
Помогаю со студенческими работами здесь

short int и short
Какая разница, инициализирую я переменную как short int или же как short ? Вроде и тот, и тот тип данных компилятор понимает :)

short vs int
Зачем в си два типа данных (short, int) с одинаковым диапазоном значений?

Преобразование 2-х char в один short int
Пробую преобразовать 2 char в один short int таким образом: char buf; short int skl; int kol=0; for(int...

Почему макс short int равен 65535?
Делаю sizeof() получаю 4 байта 1байт=8бит те 4байта=32 бита но бит это 0 или 1 таки образом есть последовательность из 0 и 1...

Char, short, int, long: какой тип выбрать?
Всем привет Читая книги по C++ столкнулся с тем, что везде пишут примерно одно и тоже. Допустим про char, short, int, long пишут что...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru