Вказівники на Структури
Мова програмування C дозволяє створювати вказівники не лише на звичайні типи даних, а й на структури (оскільки структура є користувацьким типом даних).
Оголошення та ініціалізація вказівника виглядає так:
struct <name_of_struct>
{
<field_of_struct>;
};
struct <name_of_struct>* <name_of_pointer>;
Якщо <name_of_pointer> — це вказівник на структуру,
то *(<name_of_pointer>) — це сама структура.
Для доступу до полів структури через вказівник необхідно використовувати оператор ->.
-> є аналогом оператора доступу до структури .
main.c
12345678910111213141516171819202122#include <stdio.h> // structure declaration struct Point { int x; int y; }; int main() { // create a structure variable of Point type struct Point p1; p1.x = 10; p1.y = 20; // create a pointer to a structure of type Point and assign it the address of variable p1 struct Point* ptr = &p1; // Access structure members via pointer by `->` operator printf("Coordinates: (%d, %d)\n", ptr->x, ptr->y); return 0; }
Ця програма демонструє роботу зі структурою Point, яка зберігає дві координати: x та y. У функції main створюється змінна p1 і їй присвоюються значення координат, після чого ініціалізується вказівник на цю структуру. За допомогою оператора -> програма отримує доступ до полів структури через вказівник і виводить координати точки на екран.
Swipe to start coding
У вас є студент з оцінками з 3 предметів: математика, фізика та програмування.
Ваше завдання — обчислити середню оцінку студента та визначити, чи склав він курс.
У функції calculateAverageAndCheck:
- Отримайте оцінку з кожного предмета за допомогою вказівника.
- Додайте всі три оцінки, щоб знайти загальний бал.
- Поділіть загальний бал на
3.0, щоб обчислити середню оцінку. - Порівняйте результат з прохідним балом 60.
- Якщо середня оцінка більша або дорівнює 60, поверніть
true(студент склав). - Інакше поверніть
false(студент не склав).
Приклад
| Math | Physics | Programming | Average | Result |
|---|---|---|---|---|
| 85.0 | 55.0 | 60.0 | 66.67 | ✅ Passed |
| 50.0 | 40.0 | 45.0 | 45.00 | ❌ Failed |
| 60.0 | 60.0 | 60.0 | 60.00 | ✅ Passed |
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Чудово!
Completion показник покращився до 4.35
Вказівники на Структури
Свайпніть щоб показати меню
Мова програмування C дозволяє створювати вказівники не лише на звичайні типи даних, а й на структури (оскільки структура є користувацьким типом даних).
Оголошення та ініціалізація вказівника виглядає так:
struct <name_of_struct>
{
<field_of_struct>;
};
struct <name_of_struct>* <name_of_pointer>;
Якщо <name_of_pointer> — це вказівник на структуру,
то *(<name_of_pointer>) — це сама структура.
Для доступу до полів структури через вказівник необхідно використовувати оператор ->.
-> є аналогом оператора доступу до структури .
main.c
12345678910111213141516171819202122#include <stdio.h> // structure declaration struct Point { int x; int y; }; int main() { // create a structure variable of Point type struct Point p1; p1.x = 10; p1.y = 20; // create a pointer to a structure of type Point and assign it the address of variable p1 struct Point* ptr = &p1; // Access structure members via pointer by `->` operator printf("Coordinates: (%d, %d)\n", ptr->x, ptr->y); return 0; }
Ця програма демонструє роботу зі структурою Point, яка зберігає дві координати: x та y. У функції main створюється змінна p1 і їй присвоюються значення координат, після чого ініціалізується вказівник на цю структуру. За допомогою оператора -> програма отримує доступ до полів структури через вказівник і виводить координати точки на екран.
Swipe to start coding
У вас є студент з оцінками з 3 предметів: математика, фізика та програмування.
Ваше завдання — обчислити середню оцінку студента та визначити, чи склав він курс.
У функції calculateAverageAndCheck:
- Отримайте оцінку з кожного предмета за допомогою вказівника.
- Додайте всі три оцінки, щоб знайти загальний бал.
- Поділіть загальний бал на
3.0, щоб обчислити середню оцінку. - Порівняйте результат з прохідним балом 60.
- Якщо середня оцінка більша або дорівнює 60, поверніть
true(студент склав). - Інакше поверніть
false(студент не склав).
Приклад
| Math | Physics | Programming | Average | Result |
|---|---|---|---|---|
| 85.0 | 55.0 | 60.0 | 66.67 | ✅ Passed |
| 50.0 | 40.0 | 45.0 | 45.00 | ❌ Failed |
| 60.0 | 60.0 | 60.0 | 60.00 | ✅ Passed |
Рішення
Дякуємо за ваш відгук!
single