JavaRush /Курсы /Harvard CS50 /Синтаксис указателей и структур

Синтаксис указателей и структур

Harvard CS50
5 уровень , 2 лекция
Открыта

Указатели

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

int *a; // Указатель на int
char *b; // Указатель на char
float *c; // Указатель на float

Для того, чтобы получить значение, на которое указывает указатель, необходимо применить оператор разыменования:

* 
      
  
      
  
      
  <имя переменной>

Чтобы получить указатель на какую переменную, нужно использовать оператор взятия адреса:

& 
      
  
      
  
      
  <имя переменной>

Структура и списки

Вы уже знаете, что в массивах можно хранить только целые числа, или только символы, или ещё что-то, но всегда — данные только одного типа. Но что, если вам понадобится хранить вместе данные разных типов? Решение есть. И это — структуры.

Структуры (stucts) — это средство хранения данных нескольких различных типов в одном месте.

Структуры, по сути, это ваш личный тип данных, в который входят элементы разных типов данных. Пример объявления структуры, в которой хранятся данные о студенте:

typedef struct
{
  string name;
  int id;
  int phone_number;
  string house;
}
student;

Теперь у нас есть тип с именем student. Мы можем создавать переменные этого типа, и использовать поля этого типа как показано ниже:

student walker; // Создание новой переменной
// Заполнение полей новой переменной
walker.name = "Walker";
walker.id = 123456;
walker.phone_number = 38012312366;
walker.house = "Jackson"
Комментарии (4)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
FeatHonnar Уровень 16
24 октября 2022
Комментаторы, мои любимые, куда же вы деваетесь
Matrix Уровень 0
15 февраля 2019
Тест на внимательность. Диапазон типа int может содержать числа до 32767. Поэтому номер телефона нужно помещать в другой тип данных.)
Beemo Уровень 3
29 апреля 2019
В зависимости от архитектуры процессора может занимать 2 байта (16 бит) или 4 байта (32 бита). Диапазон предельных значений соответственно также может варьироваться от –32768 до 32767 (при 2 байтах) или от −2 147 483 648 до 2 147 483 647 (при 4 байтах).
Ярослав Уровень 0
15 сентября 2020
Судя по этим данным и в 64 битной системе это число тоже не влезет: INT_MAX Максимальное значение для int: 32bit: +2147483647 64bit: +2147483647 Limits Википедия