这是接收错误的一个功能,但对于我的生活,我无法弄清楚为什么
void serchName(dealers_t *ptr, int numDealers)
{
char dealerName[NAME_LEN];
int index;
printf("please enter the dealer's name:");
scanf("%s", &dealerName);
for (index = 0; index < numDealers; index++, *ptr++)
{
if (strcmp(dealerName, ptr->name) == 0)
{
printf("name: %s\n city: %s\n state:%s\n zip:%i\n phone: %s\n", ptr->name,ptr->city,ptr->state,ptr->zip,ptr->phone);
}
}
}
答案 0 :(得分:1)
如果将char [50]传递给scanf()
,它将看到作为char *指向数组的第一个元素。这就是为什么你不必明确使用&#34;地址&#34; (&amp;)运算符(char)数组。
如果您使用它,则不会获得指向数组第一个元素的指针,而是指向数组本身的指针,以及编译器发出警告的原因。