[c] Отцовская задача уровня 1го курса ФФ

Bird_V

Бегая по бюрократам и в очередях почитывая книжки, придумал одну задачку
программистскую. Все ответы на неё - в ПМ. Ктоуже её видел - не подсказывать
ЗАДАЧА
Составить программу, в которой бы присутствовала и исполнялась следующая
строчка:


int* (*a) (int b) = c.


Что есть c в данном случае?
Каждому правильно решившему - 5 баллов.

krishtaf

а хули тут сложного ?
a - есть указатель на функцию с параметром b типа int, возвращающую указатель на int
Если, точка - конец предложения:
Соответтвенно с есть нечто, равное a, либо функция ,подходящее под описание.
Если, точка существенна:
c - есть структура или унион, имеющий член, описанный в первом случае

lord2476

больше делать не хуй.
такое мозгоебство один хуй не нужно.

maggi14

Ошибаешься. Нужно сплошь и рядом. Например, a может быть указателем на таблицу функций.

Bird_V

Молодцы!
А вот другая задачка. пришла в голову сегодня на спецкурсе по КЭД.
В каких случаях операции a=a+n и a+=n дадут разный результат?
PS. Тем, кто уже получил свои "5", можно не беспокоиться...

sergei1969

это что, для школы задачки?

Bird_V

Нет, для 1 курса ФФ.

Ivan8209

Ты уверен, что задаёшь их в нужном месте?
---
...Я работаю антинаучным аферистом...

Bird_V

Никто не модет быть в чём-то абсолютно уверен.
по-моему, это место лучше, чем стади или (упаси бог) маркет

lord2476

а я не знаю...

lord2476

можно конечно описать в своем классе функцию "operator +=" так чтобы она работала криво
так в чем фишка?
в курсе, что ++a и a++ различаються, а вот += думал просто идентичная замена...

kalif

1. Что такое "ФФ" ?
2. Эти задачки не имеют никакого отношения к программированию.

AlexV769

Как-то проскальзывала задачка:
int a = 1;
int c = (a++) + (a++) + (a++);
какое значение будет у c?
Все задачки такого типа к программированию не имеют практически никакого отношения. Такие вопросы обычно задаются [говно]преподами студентам, которые не очень сильно шарят в синтаксисе, дабы окончательно унизить последнего. На ФФ я такую женщину знаю. Слава Богу, что она у меня не вела.
Кроме всего, зачастую задачки такого типа не описаны в стандарте С, посему интерпретировать их вообще невозможно. Пример, который я привёл выше как раз и относится к таким вопросам.
MS VC6 выдавал 6,
VC7 - 7
кто-то ещё - 9.

lord2476

на моем VC++
с = 3
если
int a = 1;
int c = (++a) + (++a) + (++a);
c = 10

yolki

#define a M[i++]

логично, что a=a+n и a+=n дадут разный результат

Ivan8209

Ты много знаешь здесь слушателей первого курса физфака?
---
...Я работаю антинаучным аферистом...

margadon

anton7805

так когда же?
всегда считал, что
a=a+n и a+=n Это одно и то же

anton7805

и в правду разные

zontik

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


#include <stdio.h>
int a<::>=<%3%>;
int main
{
printf("%d",a<:0:>);
return 0;
}


ascii-art
или такой


#include "stdio.h"
int main
{
printf (&(unix)["h%six"]unix)["have"]-96+"fun");
return 0;
}


вопрос что напечатают
на засыпку: напиши программу различающую чем ее компилировали Си или Си++

bleyman

Первая прога совершенно не копилится.

Realist

#ifdef __cplusplus

zontik

угу работает, в оригинале было "не юзая препроцессор"

zontik

а Майкрософт никому и не обещал что поддерживает стандарт в своих компиляторах

freezer

Как-то проскальзывала задачка:
int a = 1;
int c = (a++) + (a++) + (a++);
какое значение будет у c?

андефайнед бихейвиэ, вот что будет

rosali

Первая прога совершенно не копилится.

Все компилицца!


[xenon andrei]$ cat > shit.c
#include <stdio.h>
int a<::>=<%3%>;
int main
{
printf("%d",a<:0:>);
return 0;
}
[xenon andrei]$ gcc -o shit shit.c
[xenon andrei]$ ./shit
3


Да просто на убогих компьютерах нет символов '[]{}' и кое-каких других, поэтому вместо
'[' можно писать '<:' а вместо '{' -- '<%'.
А еще вместо || и && можно писать 'or' и 'and'... Придурки, такие ценные слова отобрали

rosali

просто на убогих компьютерах нет символов...

PS Windows на такие компьютеры не ставится

buka

Не на убогих ПК, а на продвинутых телефонах!
Оставить комментарий
Имя или ник:
Комментарий: