Рубрики

Почему C рассматривает параметры массива как указатели?

В C параметры массива обрабатываются как указатели. Следующие два определения foo () выглядят по-разному, но для компилятора они означают одно и то же. Предпочтительно использовать любой синтаксис, более точный для удобства чтения. Если входящий указатель действительно является базовым адресом всего массива, то мы должны использовать [].

void foo(int arr_param[]) 

{

  

  / * Глупо, но верно. Просто меняет локальный указатель * /

  arr_param = NULL; 

}

  

void foo(int *arr_param) 

{

  

  / * то же самое * /

  arr_param = NULL; 

}

Параметры массива рассматриваются как указатели из-за эффективности . Неэффективно копировать данные массива с точки зрения как памяти, так и времени; и в большинстве случаев, когда мы передаем массив, мы намереваемся просто указать интересующий нас массив, а не создавать копию массива.

На вопрос Шобхита

Рекомендуемые посты:

Почему C рассматривает параметры массива как указатели?

0.00 (0%) 0 votes