Контрольная работа: Алгебра логіки як розділ математики
int main (void)
{
double x = 100.1, y;
int *p;
p = (int *) &x; /* Вказівник цілого типу р посилається на змінну подвійної точності
y = *p; /Оператор працює не так, як вимагалося
printf ("%f", y);. Число 100.1 не виводиться
return 0;
}
Вказівник можна присвоїти іншому вказівнику.
Приклад
#include <stdio. h>
int main (void)
{
int x;
int *p1, *p2;
p1 = &x;
p2 = p1;
printf (" %p", p2); /* Виводить адресу змінної х, не її значення */
return 0;
}
У прикладі на змінну х посилаються обидва вказівника р1 і р2.
До вказівників можна застосовувати лише дві арифметичні дії - віднімання і додавання Віднімання дозволяє визначити кількість елементів базового типу, розташованих між двома вказівниками.
До вказівників можна застосовувати операції порівняння. Як правило, це робиться тоді, коли вказівними посилаються на той самий об’єкт, наприклад, масив. Розглянемо в якості прикладу пару функцій для роботи зі стеками, в які записують і з яких зчитують цілі числа. Стек-це список, доступ до елементів якого здійснюється за принципом „першим увійшов-останнім вийшов”. Стеки використовуються в компіляторах, інтерпретаторах, програмах обробки електронних таблиць. Щоб створити стек, необхідні дві функції push () і pop ().
Функція push () заносить числа в стек, а функція рор () видобуває їх звідтам. У наведеній нижче програмі вони керуються функцією. При вводі числа з клавіатури програма заносить його в стек. Якщо користувач ввів 0, значення видобувається зі стеку. Програма припинить роботу при введенні - 1.
#include <stdio. h>
#include <stdlib. h>
#define SIZE 50
void push (int i);