您的位置:首页 > 其它

结构体的使用简述

2016-08-06 21:02 141 查看

结构体指针变量的概念

当一个指针变量用来指向一个结构体变量时,称之为结构体指针变量。

  结构体指针变量的定义

结构体指针变量定义的一般形式为:

struct 结构体类型名 *结构体指针变量名;

例如,有如下结构体类型定义:

#define N 10 /* 10 门课程 */

#define MAXLEN 20 /* 学生姓名最大长度 */

struct student

{

char name[MAXLEN];

int score
;

} ;

则 , 要定义一个指向 student 的结构体指针变量 pstu , 可写成 :

struct student *pstu;

结构体指针变量的引用

结构体指针变量必须要先赋值后才能使用。赋值时,是把结构体变量的首地址赋给该指针变量. 如:

struct student s, *pstu;

pstu = &s;

定义了结构体指针变量后,访问各成员的一般形式为:

( *结构体指针变量 ).成员名

或为:

结构体指针变量->成员名

例如:

( *pstu ) .name 或者 pstu->name

【例7-1】结构体指针变量的顶替及使用方法。 源程序

/**********************************************************/ /* 程 序 名: samp7_1 . c */

/* 作 者: wqy*/

/* 编制时间: 2016 年 8 月 6 日 */

/* 程序功能:举例说明 结构体指针变量的具体用法 */

/**********************************************************/ #include "stdio.h"

#define N 5 /* 5 门课程 */

#define MAXLEN 20 /* 学生姓名最大长度 */

/************************************/

/* 函 数 名: main */

/* 函数功能:主函数 */

/* 入口参数:无 */

/* 返 回 值:无 */

/************************************/

void main()

{

struct student

{

char name[MAXLEN];

int score
;

} s1 = { "Li ming", { 80, 75, 90, 78, 89 } }, *p; int i;

/* 用结构体变量访问其成员 */ printf( " 姓名为: %s\n", s1.name ); printf( " 成绩为: " );

for ( i=0; i<N; i++ )

printf( " %d ", s1.score[ i ] );

printf( "\n" );

/* 用结构体指针变量访问结构体成员 */ p = &s1;

printf( " 姓名为: %s\n", p->name ); printf( " 成绩为: " );

for ( i=0; i<N; i++ )

printf( " %d ", p->score[ i ] );

printf( "\n" );

}

指向结构体的指针赋值举例

struct student

{

char name[20];

};

void main()

{

struct student *st[99];

st[5]=(struct student*)calloc(1, sizeof(struct student)); sprintf(st[5]->name, "xyz");

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: