Задачка по программированию на Си

Задачка по программированию: есть программа, написанная на языке Си. Сможете ли вы, не запуская её, сказать, что она напечатает? Чему равно x в конце программы?

#include <stdio.h>
int main(int argc, char**argv)
{
    unsigned long* x;
    x = 0;
    x = x + 1;
    printf("X = %lu\n", x);
    return 0;
}

 

Ответ: 

3.666665
Средняя оценка: 3.7 (6 голосов)

Познавательно

Человеческая рука есть одна из первых счетных машин!

Движением пальца. Положите обе руки рядом на стол и протяните пальцы. Каждый палец слева направо будет означать соответствующее порядковое число: первый слева — 1, второй — 2, третий — 3, четвертый — 4 и т. д. до десятого, который будет обозначать число 10. Например, Нам необходимо умножить 7 на 9. Теперь поднимите седьмой палец. Число пальцев, лежащих налево от поднятого пальца, будет числом десятков произведения, а число пальцев направо — числом единиц. Налево от поднятого пальца лежат 6 пальцев, а направо — 3. Значит, результат умножения 7 на 9 равен 63.

Это удивительное на первый взгляд механическое умножение тотчас же станет понятным, если вспомнить, что сумма цифр в каждом произведении чисел таблицы умножения на девять равна девяти, а число десятков в произведении всегда на 1 меньше того числа, которое мы умножаем на 9. Поднятием соответствующего пальца это мы и отмечаем, а следовательно, и умножаем.