->的表示含义
从代码得知t[i]->name是一个指针变量
t[i]->name = malloc(sizeof(char)*64)是t[i]->name指向了在堆区开辟的64字节的空间的首地址
所以现在t[i]->name里存的应该是一个首地址
我们为什么可以直接sprintf(t[i]->name, "Teacher%d", i + 1)这样赋值而不是 *(t[i]->name)
->的表示含义
sprintf函数的声明如下
int sprintf(char * string, char * format [,argument,...])
其中第一个参数是指向字符数组的指针,也就是一个地址
t[i]->name=&(t[i]->neme[0]),就是字符数组的第一个元素的地址
而*(t[i]->name)=t[i]->name[0],它只是字符数组neme的第一个元素值