wake003 发表于 2022-3-31 02:28:31

结构体问题

struct Book
{
          char title;
         char author ;
            float    price ;
          unsigned int date;
            char publisher ;
            } book;
int main (void )
{
printf("请输入书名: ");
scanf("%s", book. title) ;
printf("请输入作者: ");
scanf ("%s”,book.author) ;
printf("请输入售价: ");
scanf("%f",&book.price);
printf("请输入出版日期: ");
scanf("%d", &book . date) ;
printf("请输入出版社: ");
scanf("%s",book . publisher) ;


这里为什么          printf("请输入售价: ");             price和book这里要取地址,而title和author不用?
                        scanf("%f",&book.price);
                        printf("请输入出版日期: ");
                        scanf("%d", &book . date) ;

jhq999 发表于 2022-3-31 06:34:39

怎么在子程序中修改实参的值?

chxchxkkk 发表于 2022-3-31 09:00:31

字符串或字符数组不用取地址

FK二十一 发表于 2022-4-1 09:33:32

因为后两者是字符数组的数组名,可以用做指向数组第一个元素的指针。

贾政景 发表于 2022-4-4 15:52:46

scanf本来就是要用&的。因为字符串、字符数组的开头就表示了地址,所以你的book.title这些就是地址不用再加&,但book.price这些就是普通的变量名,所以要加&
页: [1]
查看完整版本: 结构体问题