sizeof размер места, занимаемый переменной в памяти. У тебя А имеет тип массива int из 4 элементов. Обычно под разрядностью инт понимается разрядность регистра общего назначения процессора системы. В 32битных компиляторах тип int занимает 32 бита или 4 байта, а у тебя элемента 4. 4*4 = 16. Сошлось!
имхо 1 выведет, так как 4/4(у большинства так) = 1 Но не проверял, не знаю =) С или C++? На C - никак. На C++ - можно, но если массивы типа CArray, vector или подобные. Просто посмотри список их методов.
как всегда, мы говорили о разных вещах. Code: int func(int a[]) { return sizeof(a); } int main() { int rrr[10]; printf("%d\n", func(rrr)); return 0; } Вывод - 4. Вполне очевидно, потому что int func(int a[]) нихрена это не массив. В функцию передается указатель на него и это полностью аналогично этому: int func(int *a) Code: int rrr[10]; printf("%d\n", sizeof(rrr)); Вывод - 40. Тоже очевидно. 10 элементов по 4 байта.
Про что я и говорил. Любой sizeof(), как ты сказал, определяется на этапе компиляции. Вывод: sizeof() не подходит. Т.к. с такой же легкостью мы можем подставить туда числовое значение. Ну так вот, на сишнике я не вижу способа определить размер массива.
ммм, извините ламера, но разве в этом случае sizeof(A[])/4 - не будет являться кол-вом элементов int-массива?
Дикс 1) при передаче в ф-ию передается не массив, а лишь указатель на его первый элемент. 2) если это не в ф-ии, то смысла нет, т.к. мы можем просто тупо набрать число с клавы. Тем более, int != 4, хотя это верно для большинства машин(но не для всех)
насколько я помню, указатель - 4 байта, делить на четыре будет всегда еденица. Для всех 32-битных. Для 64-битных хз, логично предположить, что 64 бита, потому что и в 32- и в 16-битных процах размер инта был равен размеру машинного слова.
Никогда не задумывался, отчего в том же турбопаскале нелязя было юзать больше 64кб памяти без применения спец-фишек? ) А в 32битных системах больше 4 гигов?
А то, что ты сказал, что при делении на 4 будет всегда 1. А это неверно, т.к. указатель нихрена не 4, просто он 4 на большинстве машин!