В настоящее время я изучаю язык c, и я столкнулся с этим кодом. ptr уже является типом указателя переменной, поэтому каков эффект оператора &
, потому что я знаю, что обычно оператор использует для получения адреса переменной, отличной от указателя.адрес переменной указателя
struct name {
int a; float b; char c[30];
};
int main()
{
struct name *ptr;
int i,n;
printf("Enter n: ");
scanf("%d",&n);
ptr = (struct name*)malloc(n*sizeof(struct name));
/* Above statement allocates the memory for n structures with pointer ptr pointing to base address */
for(i=0; i<n; ++i) {
printf("Enter string, integer and floating number respectively:\n");
scanf("%s%d%f", &(ptr+i)->c, &(ptr+i)->a, &(ptr+i)->b);
}
}
@ P0W: Кодирование стиля и вредных привычек в стороне, это, по-видимому, отлично подходит для C++. –
@JohnDibling Мне иногда удается скомпилировать методы C из вопросов без изменений с помощью Java, но это не значит, что эти вопросы должны быть помечены как Java, так и C. Аналогичным образом, вопрос не должен быть помечен как C, так и C++. Тег C++ часто приводит к рекомендациям на языке C++, которые просто не помогут OP. – Dukeling
@ Dukeling: Возможно, но OP помечает его с обоих языков по какой-то причине. Возможно, это не повод, а причина. Помимо упоминания «c» в OP, здесь нет ничего, что подсказывает, что данный язык не может быть C++. Спроситель должен уточнить. –