#include <stdio.h>
int main(void){
char array[20];
printf( "\nSize of array is %d\n", sizeof(array) ); //outputs 20
printf("\nSize of &array[0] is %d\n", sizeof(&array[0]); //output 4
}
Код выше дает 20
для sizeof(array)
и 4
для sizeof(&array[0])
.
Я знал, что вместо массива в качестве аргумента его первый элемент можно передать. Разве они не должны давать такой же результат, как 20? и почему &array[0]
дает 4 в качестве результата? Насколько я знаю, char хранится в 1 байте?