char *myArray[] = { "aaaaaa", "ccccc", "bbbbbb", "111111" };
printf("%d\n", sizeof(myArray));
printf("%d\n", (int)(&myArray + 1) - (int)(&myArray));
Мой вопрос в том, почему передача myArray в sizeof
может получить тот же результат, что и второй метод.C размер массива байтов размер
Я знаю, что myArray
представляет адрес, который указывает на первый из четырех адресов внутреннего пространства, но как sizeof
распознает размер байтов 4 int
пространство?
sizeof
не является функцией, что это такое?
[SizeOf ] (https://en.wikipedia.org/wiki/Sizeof) является унарным оператором. –
"* Я знаю, что myArray представляет адрес, который указывает на первый ... *« Не когда передается 'sizeof'. – juanchopanza
'printf ("% d \ n ", sizeof (myArray));' -> 'printf ("% zu \ n ", sizeof (myArray));' – LPs