谭浩强 C语言 第四版,该怎么解决

谭浩强 C语言 第四版
第321页 程序是不是有错?书上程序如下:
C/C++ code
#include<stdio.h>
struct
{
    int num;
    char name[10];
    char sex;
    char job;
    union
    {
        int clas;
        char position[10];
    }category;
}person[2];

int main()
{
    int i;
    for(i=0;i<2;i++)
    {printf("please enter the data of person:\n");
        scanf("%d %s %c %c",&person[i].num,&person[i].name,/*此处&person[i].name不应该写成person[i].name才对吗?*/
                 &person[i].sex,&person[i].job);
        if (person[i].job=='s')
            scanf("%d",&person[i].category.clas);
        else if (person[i].job=='t')
                scanf("%s",person[i].category.position);
        else 
            printf ("Input error!");
    }
    /*以下省略*/
    }


另外在此书的148页,6.2标题上数5行,i=1,a[i]和a[i+1]比较就是将a[1]和a[1],正确应该的应该不是a[1]和a[2]吗?另外在老谭程序的写法上,有时候觉得他写的一些语句很多余,还有时候感觉他的写法很别扭,如316页15行的函数内容直接用do-while循环不是更好?

求指点!!!!

------解决方案--------------------
/*此处&person[i].name不应该写成person[i].name才对吗?*/

这样写都行

i=1,a[i]和a[i+1] 这样不是 a[1] 和 a[2]吗?

建设楼主买本 C++primer对照学习。。
------解决方案--------------------
我倒......你是对的,那里还真的是个指针。