#include <stdio.h>
int main()
{
struct Student
{
long int num;
char name[20];
char sex;
char addr[20];
}a={10101,"Li Lin",'M',"123 Beijing Road"};
printf("NO.:%ld\nname:%s\nsex:%c\naddress:%s\n",a.num,a.name,a.sex,a.addr);
/home/andrew/文档/Clion/big/cmake-build-debug/big
NO.:10101
name:Li Lin
sex:M
address:123 Beijing Road
Process finished with exit code 0
#include <stdio.h>
#include<string.h>
//#include "fun.h"
//#include "func.h"
int main()
{
struct Student
{
long num;
char name[20];
char sex;
float score;
};
struct Student stu_1;
struct Student *p;
p=&stu_1;
stu_1.num=10101;
strcpy(stu_1.name,"Li Lin");
stu_1.sex='M';
stu_1.score=89.5;
printf("NO.:%d\nname:%s\nsex:%c\nscore:%5.1f\n\n\n",stu_1.num,stu_1.name,stu_1.sex,stu_1.score);
printf("NO.:%d\nname:%s\nsex:%c\nscore:%5.1f\n\n\n",(*p).num,(*p).name,(*p).sex,(*p).score);
printf("NO.:%d\nname:%s\nsex:%c\nscore:%5.1f\n\n\n",p->num,p->name,p->sex,p->score);
return 0;
}
//////////////////////////////////////////////////////////////////
/home/andrew/文档/Clion/big/cmake-build-debug/big
NO.:10101
name:Li Lin
sex:M
score: 89.5
NO.:10101
name:Li Lin
sex:M
score: 89.5
NO.:10101
name:Li Lin
sex:M
score: 89.5
/////////////////////////////////////////////////////
以上是结构体指针,说明为了方便和直观,在C语言中允许把(*p).num用p->num来代替,因此:(*p).num等价于p->num.“->称为指针运算符”
#include <stdio.h>
//#include<string.h>
//#include "fun.h"
//#include "func.h"
struct Student
{
int num;
float score;
struct Student *next;
};
int main()
{
struct Student a,b,c,*head,*p;
a.num=10101;a.score=89.5;
b.num=10103;b.score=90;
c.num=10107;c.score=85;
head=&a;
a.next=&b;
b.next=&c;
c.next=NULL;
p=head;
//do {
p= (*((*p).next)).next; //(与下面等价)
// p=p->next->next;
printf("%ld %5.1f\n",p->num,p->score);
//p=p->next->next;
// }while(p!=NULL);
return 0;
}
本文通过几个实例详细介绍了C语言中结构体的基本定义与使用,包括成员变量的初始化、输出,以及如何通过指针操作结构体变量,并展示了结构体指针的使用方法和链表的基本构建。
926

被折叠的 条评论
为什么被折叠?



