#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
struct BOOK{
char name[15];
char author[33];
int year;
};
struct BOOK *books;
int main(){
int i,noBooks;
noBooks=2;
books=malloc(sizeof(struct BOOK)*noBooks);
books[0].year=1986;
strcpy(books[0].name,"MartinEden");
strcpy(books[0].author,"JackLondon");
//asking user to give values
scanf("%d",&books[1].year);
scanf("%s",&books[1].name);
scanf("%s",books[1].author);
printf("%d %s %s\n",books[0].year,books[0].author,books[0].name);
printf("%d %s %s\n",books[1].year,books[1].author,books[1].name);
getch();
return 0;
}
我给1988 theidiot
和dostoyevski
输出是
1986 JackLondon MartinEden
1988 dostoyevski theidiot
在 scanf
中,在 books[].name
中,我使用了 &
,在 books[].author
中我没有使用,但它还是一样。对于 year
它不起作用。 &
结构没用?
我是说这里
scanf("%d",&books[1].year);
scanf("%s",&books[1].name);
scanf("%s",books[1].author); //no & operator
char name[15];
char author[33];
在这里,我可以使用
char *name[15];
char *author[33];
没有任何变化。为什么我看不出区别?
我是一名优秀的程序员,十分优秀!