struct individual {
int element[100];
int rank;
} ;
struct population{
individual ind[10];
individual *ind_ptr;
} ;
population p1,*p1_ptr;
p1_ptr = &p1;
p1_ptr->ind_ptr = &(p1_ptr->ind[0]);
p1.ind[0].element[0] = 1;
p1_ptr->ind_ptr->element[0] = 1;
Последние два утверждения выражают одно и то же. Мне интересно, почему я должен использовать указатели? Есть ли преимущества указателей на индексы? Или есть предпочтение использования «.» И «->» в структурах? Большое спасибо.Почему мы используем указатели вместо индекса при обращении к элементам массива в structs
Я снова редактировал свои коды, исправляя ошибки, отмеченные akash_sinha13134 и Jonathan Leffler. И спасибо за комментарий mbratch. Большое спасибо.
Существует множество причин, чтобы выбрать один против другого. Google «указатели против структур в C», и вы найдете хорошую информацию. Отчасти это связано с управлением памятью и данными. «Дешевле» передавать указатель на что-то вокруг, чем сам элемент, если этот элемент является «структурой» (обычно большим количеством байтов). И это необходимо, если ваша «структура» относится к другим структурам, которые уже существуют где-то в другом месте, поэтому в этом случае необходим указатель (вам не нужна копия, а указатель на фактический). В некоторых случаях это не имеет значения, сколько вы выбираете (например, в вашем надуманном случае). – lurker