700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 【C/C++学习笔记】C语言结构体指针的输入输出

【C/C++学习笔记】C语言结构体指针的输入输出

时间:2019-04-21 05:06:14

相关推荐

【C/C++学习笔记】C语言结构体指针的输入输出

简单构造一个结构体实例如下:

struct student{char name[20];int score;};

1.指向结构体变量

int main(){struct student st1;scanf("%s %d", st1.name, &(st1.score));printf("%s %d\n", st1.name, st1.score);return 0;}//输入:aha 12//输出:aha 12

2.指针指向结构体成员

int main(){struct student st1, *st2;st2 = &st1;//指向结构体变量scanf("%s", st2->name);scanf("%d", &st2->score);printf("%s %d\n", st1.name, st1.score);printf("%s %d\n", (*st2).name, (*st2).score);printf("%s %d\n", st2->name, st2->score);return 0;}//输入: aha 12//输出:aha 12//aha 12//aha 12

注意:

(1)如果要将一个结构体对象赋给一个结构体指针变量,那么它们的结构体类型必须相同

(2)指针 *st2两边的括号不可省略,因为成员运算符“.”的优先级高于指针运算符“*”,所以如果 *st2 两边的括号省略的话,那么 *st2.name 就等价于 *(st2.name) 了。但是我们可以使用下面两种方式访问结构体成员:

(*指针变量名).成员名

指针变量名->成员名

3.给结构体指针申请空间

int main(){struct student *st2;st2 = (struct student *)malloc(sizeof(struct student));if (NULL == st2) {exit(1);}scanf("%s", st2->name);scanf("%d", &st2->score);printf("%s %d\n", st2->name, st2->score);if (st2) {free(st2);st2 = NULL;}return 0;}//输入: aha 12//输出:aha 12

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。