Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2010, 14:32   #1
blond007
 
Регистрация: 06.04.2010
Сообщений: 4
Смущение Вот такой вот код

Помогите, плиз!!!!!!! Я программист, но начинающий!!
Надо выяснить, что на выходе данного кода. И как пришли к такому решению. Решила, но нужен правильный ответ,а в своем решении я сомневаюсью.

Код:
int main(){
 int i = 0;
 int t = 0;
 for(i; i < 5; i++);
 {
  t++;
 }
 printf("%d", t);

 struct Startup_House{
  int entrepreneurship;
  int enjoying_life;
  int community;
 };
 struct Startup_House fish;
 fish.entrepreneurship = 52;
 fish.enjoying_life = 17;
 fish.community = 63;
 printf("%d", (int)&fish.community - (int)&fish.entrepreneurship);

 struct node{
  node* next;
  node* prev;
  int value;
 };
 node* head = new node;
 node* current;
 current = head;
 for(int x = 0; x < 10; x++){
  current->next = new node;
  current->next->prev = current;
  current->value = x * x;
  current = current->next;
 }
 node* tail = current;
 printf("%d", tail->next->prev->value);
 printf("%d", head->next->next->next->value * head->next->next->next->next->value - tail->prev->value);
}

: d

Последний раз редактировалось Stilet; 06.04.2010 в 15:01.
blond007 вне форума Ответить с цитированием
Старый 06.04.2010, 15:28   #2
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

А может все же нам удастся послушать и оценить ваш ответ?
MaTBeu вне форума Ответить с цитированием
Старый 06.04.2010, 15:44   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
blond007
А запустить его в компиляторе не хочешь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.04.2010, 16:11   #4
blond007
 
Регистрация: 06.04.2010
Сообщений: 4
По умолчанию

Вы ж по-английски спик??

The output data is (1 8 0 63)


1) We got 1 because the parameter "t" increse just 1 time because it doesnt depends on the "i".

2) It is explained by the fact that we calculate the difference between the adresses of parameters.
Every field needs 4 bytes of memory so the difference between the first and the second cells is 8.
By the way this is not correctly to lead adresses to type int.

3) We got 0 because due cycle we have 0->8124->0->0;

4) We got 63 because due cycle we have 0->1->4->9->9 * 0->1->4->9->16->16 - 0->81->81 = 63
blond007 вне форума Ответить с цитированием
Старый 06.04.2010, 16:12   #5
blond007
 
Регистрация: 06.04.2010
Сообщений: 4
По умолчанию

загнала в компилятор, получила ответ, но вот не пойму с пунктами 3) и 4) почему именно так. Кто-то может объяснить??
blond007 вне форума Ответить с цитированием
Старый 06.04.2010, 16:49   #6
evgn
Разрабатываюсь....
Пользователь
 
Регистрация: 16.11.2008
Сообщений: 68
По умолчанию

А помойму должно получиться Access violation...
Ибо у хвоста нет следующего элемента...
После tail->next->prev будет ошибка
Код:
node* tail = current;
 printf("%d", tail->next->prev->value);
evgn вне форума Ответить с цитированием
Старый 06.04.2010, 16:52   #7
blond007
 
Регистрация: 06.04.2010
Сообщений: 4
По умолчанию

Мне такую версию тоже высказывали, но у меня все откомпелировалось.
blond007 вне форума Ответить с цитированием
Старый 06.04.2010, 22:03   #8
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Цитата:
Мне такую версию тоже высказывали, но у меня все откомпелировалось.
Оно и не должно был вызвать ошибок при компиляции, компилятор не может (и не должен) предусматривать подобные вещи. Зато на этой строке, во время выполнения программы, у вас будет ошибка Access violation (вы там явно куда-то не понятно куда в памяти лезете.), а если и не будет (что тоже возможно), то вы просто получите левые данные (мусор).
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс

Последний раз редактировалось ROD; 06.04.2010 в 22:06.
ROD вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как мне создать вот такой объект? Тупой Microsoft Office Excel 2 10.12.2009 00:12
Дайте оценку сложности вот такой деятельности mmp Свободное общение 14 01.10.2009 21:54
как сделать такой вот элемент? heallry HTML и CSS 6 21.09.2009 11:39
Вот такой синий экран Altera Свободное общение 9 06.07.2009 13:12
Такой вот вопрос... mopmuk Помощь студентам 10 07.06.2009 22:59