用VC++如何添加学生记录

来源:百度知道 编辑:UC知道 时间:2024/05/18 17:25:42
struct student {
unsigned idNum;
char name[16];
double score[N+1];
struct student *next;
};
typedef struct student NODE;
以上是定义学生记录结构体类型
void fnAdd( NODE **ppHead ) 声明添加记录函数
void main( void )
{
NODE *pHead = NULL; /* pHead指向链首 */
fnAdd( &pHead, rate ); /调用
}
想问下用这个void fnAdd( NODE **ppHead )双重指针应如何实现记录的添加?
其实本人想知道如何用指针的指针才能将数据输入到相应的结构体成员里,例如应该怎样才能将学号输入到idNum

不是需要用指针的指针才能输入数据到结构体成员,只要用指针就可以改变结构体内的数据,比如:
void SetNum(NODE *pNode)
{
pNode->idNum = 1;
}
NODE node; // 此时idNum未初始化
SetNum(&node); // 此时idNum为1

使用指针的指针是为了改变指针本身的值。比如你程序中的pHead,最开始初始化为NULL,调用fnAdd函数时,需要新创建一个NODE对象,初始化好里面的数据成员,并将参数ppHead的值设置成这个新的NODE对象的地址,即:*ppHead = pNewNode;函数fnAdd执行完成后,main函数中的pHead就指向了新的NODE对象了。