Re: Не понял!
От: Alex Fedotov США  
Дата: 29.07.01 23:14
Оценка:
Здравствуйте Alex, вы писали:

A>Я что не могу понять, почему программа работает?

A>Почему второй printf() отрабатывает как требуется?
A>(У учителя чуть глуза не выпали, когда он увидел это.)


A>#include <stdio.h>

A>#include <conio.h>
A>void main()
A>{
A> int n1,n2,n3,n4,n5;
A> printf("Enter five numbers (integers): ");
A> scanf("%d%d%d%d%d",&n1,&n2,&n3,&n4,&n5);
A> printf("The negative order of %d, %d, %d, %d, %d is %d, %d, %d, %d, %d",n1,n2,n3,n4,n5);
A> getch();
A>}


A>Разъясните глупому, пожалуйста. Спасибо.


Особенности реализации printf. Похоже, что локальные переменные n1...n5 удачно дополняют стек вызова printf до корректного. Если бы в функции было больше локальных переменных, фокус бы не получился.

А вообще, программы могут глючить массой разных способов. Иногда отловишь очередной баг в своем коде шестимесячной давности, смотришь в него и думаешь: а как же это раньше работало?
-- Alex Fedotov
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.