Короткий Огляд Вказівників
Оператор розіменування
Вказівник — це змінна, що містить адресу іншого об'єкта.
Оператор розіменування "*" повертає значення, що зберігається за цією адресою.
Оголошення та ініціалізація вказівника виглядає так:
int* pName = NULL;
main.c
12345678#include <stdio.h> int main() { int* pName = NULL; printf("%p\n", pName); // `%p` is a specifier for a pointer return 0; }
Оператор взяття адреси &
Оператор & повертає адресу об'єкта:
main.c
12345678#include <stdio.h> int main() { int variable; printf("%p\n", &variable); return 0; }
Змінна типу вказівника використовується для зберігання адреси, яку повертає оператор &.
int variable;
int* pVariable;
pVariable = &variable;
Щоб отримати вміст за вказаною адресою, необхідно використати оператор * для змінної типу вказівник.
main.c
12345678910#include <stdio.h> int main() { int variable = 1024; int* pVariable = &variable; printf("Address: %p\n", pVariable); // `%p` specifier for a pointer printf("Returned value by address: %d\n", *(pVariable)); // using `*` to pointer return 0; }
Swipe to start coding
У вас є продукт із певною ціною, і потрібно збільшити її на заданий відсоток.
Ваше завдання — реалізувати функцію, яка оновлює ціну продукту за допомогою вказівника.
Усередині функції updatePrice:
- Використовуйте оператор розіменування (
*) для доступу до поточного значення, що зберігається в пам'яті — наприклад,*priceозначає100.0. - Обчисліть відсоток від поточної ціни —
*price * percentIncrease / 100.0, для 10% від 100.0 це буде10.0. - Додайте цю відсоткову частину до початкового значення, щоб отримати оновлену ціну —
*price = *price + (percentage part). - Функція нічого не повертає — вона безпосередньо змінює значення через вказівник.
Example
| Initial Price | Increase (%) | Updated Price |
|---|---|---|
| 100.0 | 10.0 | 110.0 |
| 250.0 | 5.0 | 262.5 |
| 80.0 | 25.0 | 100.0 |
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Can you explain the difference between the * and & operators in more detail?
Can you give an example of how to use pointers in a function?
What are some common mistakes when working with pointers?
Чудово!
Completion показник покращився до 4.35
Короткий Огляд Вказівників
Свайпніть щоб показати меню
Оператор розіменування
Вказівник — це змінна, що містить адресу іншого об'єкта.
Оператор розіменування "*" повертає значення, що зберігається за цією адресою.
Оголошення та ініціалізація вказівника виглядає так:
int* pName = NULL;
main.c
12345678#include <stdio.h> int main() { int* pName = NULL; printf("%p\n", pName); // `%p` is a specifier for a pointer return 0; }
Оператор взяття адреси &
Оператор & повертає адресу об'єкта:
main.c
12345678#include <stdio.h> int main() { int variable; printf("%p\n", &variable); return 0; }
Змінна типу вказівника використовується для зберігання адреси, яку повертає оператор &.
int variable;
int* pVariable;
pVariable = &variable;
Щоб отримати вміст за вказаною адресою, необхідно використати оператор * для змінної типу вказівник.
main.c
12345678910#include <stdio.h> int main() { int variable = 1024; int* pVariable = &variable; printf("Address: %p\n", pVariable); // `%p` specifier for a pointer printf("Returned value by address: %d\n", *(pVariable)); // using `*` to pointer return 0; }
Swipe to start coding
У вас є продукт із певною ціною, і потрібно збільшити її на заданий відсоток.
Ваше завдання — реалізувати функцію, яка оновлює ціну продукту за допомогою вказівника.
Усередині функції updatePrice:
- Використовуйте оператор розіменування (
*) для доступу до поточного значення, що зберігається в пам'яті — наприклад,*priceозначає100.0. - Обчисліть відсоток від поточної ціни —
*price * percentIncrease / 100.0, для 10% від 100.0 це буде10.0. - Додайте цю відсоткову частину до початкового значення, щоб отримати оновлену ціну —
*price = *price + (percentage part). - Функція нічого не повертає — вона безпосередньо змінює значення через вказівник.
Example
| Initial Price | Increase (%) | Updated Price |
|---|---|---|
| 100.0 | 10.0 | 110.0 |
| 250.0 | 5.0 | 262.5 |
| 80.0 | 25.0 | 100.0 |
Рішення
Дякуємо за ваш відгук!
single