Не зная, что он работает на, и что он был составлен на нем будет трудно сказать? Знаете ли вы, что некоторые системы хранят байты, которые составляют более длинные типы, наоборот, что размер int или float будет отличаться от числа байтов и что компиляторы могут помещать параметры в стек или переупорядочивать их. ...
Таким образом, вы (предположительно) может в конечном итоге с двумя байт поплавка (ок, не страшно реалистично, но возможно), что изложенные в памяти рядом с ИНТ:
Float a [Low byte]
Float a [High byte]
Int i [Low byte]
Int i [High byte]
char * ptr [Low byte]
char * ptr ... etc
И ваш итерация в 4 байта будет идти прямо через обе переменные стека ....
Более интересно, что если comp Илер положил его так, как вы перечислили, но опять же, что (глупо) два байт поплавка (игнорировать порядок байт):
Int i [Low byte]
Int i [High byte]
Float a [Low byte]
Float a [High byte]
char * ptr [Low byte]
char * ptr ... etc
ваша четыре байт итерации начать изучение содержимого указателя, который следственный (сам).
Таким образом, при рассмотрении данных в цикле, вы можете использовать размер типа вы экзаменационные:
for (i=0; i<= sizeof(a); i++)
Почему бы вам не попробовать компиляции и выполнения этого? – Kotshi
Это будет нечто вроде 'error: 'main' должно возвращать 'int'', за которым следует' command not found'. – juanchopanza
@juanchopanza Не обязательно, по умолчанию 'gcc' примет его, хотя я не рекомендую это делать ... – Kotshi