Struct 变量命名
struct
{
int year;
int month;
} DATE;
struct DATE1{
int year;
int month;
};
结构体的名字写在前面和后面都是OK
一个基本的结构体的例子
#include "stdio.h"
struct Date{
int day;
int month;
int year;
};
struct Stu
{
int stuNo;
char stuname[20];
int age;
struct Date birthday;
} stu;
void main(){
stu.age=11;
printf("%d\n",stu.age );
scanf("%d", &stu.age );
printf("%d\n",stu.age );
stu.birthday.year=1999;
stu.birthday.month=1;
stu.birthday.day=22;
printf("birthday is %d-%d-%d", stu.birthday.year,stu.birthday.month,stu.birthday.day);
}
如果处理结构体中表示字符串的char[]数组呢?
方式1
#include "stdio.h"
#include "string.h"
struct Stu{
int stuNo;
char stuName[20];// 定义一个数组的时候 若没有对其初始化,那么必须要指定数组长度
int age;
char addr[20];
} stu1,stu2;
void main(){
stu1.stuNo=1;
gets(stu1.stuName );//C语言中的数组模拟的字符串似乎不能在定义之后再赋值 所以就通过这样的方式赋值
stu1.age=12;
gets(stu1.addr);
printf("stu1 info is %d, %s ", stu1.stuNo, stu1.stuName);
printf(" %d, %s\n",stu1.age, stu1.addr );
}
或者使用下面这种更为简单的方式
#include "stdio.h"
#include "string.h"
struct Stu{
int stuNo;
char stuName[20];// 定义一个数组的时候 若没有对其初始化,那么必须要指定数组长度
int age;
char addr[20];
} stu1={1,"stu1",23,"address" },
stu2={2,"stu2",23,"adsssdress" };
void main(){
stu1.stuNo=1;
printf("stu1 info is %d, %s ", stu1.stuNo, stu1.stuName);
printf(" %d, %s\n",stu1.age, stu1.addr );
}
结构体型数组
#include "stdio.h"
#include "string.h"
struct Stu{
int stuNo;
char stuName[20];// 定义一个数组的时候 若没有对其初始化,那么必须要指定数组长度
int age;
char addr[20];
};
struct Stu stus[]={
{1,"stu1",23,"add"},
{2,"stu2",21,"add2"},
{3,"stu3",21,"add3"}
};
void main(){
struct Stu stu1=stus[0];
printf("stu1 info is %d, %s ", stu1.stuNo, stu1.stuName);
printf(" %d, %s\n",stu1.age, stu1.addr );
}
指向结构体数据类型的指针
#include "stdio.h"
#include "string.h"
struct Stu{
int stuNo;
char stuName[20];//定义一个数组的时候 若没有对其初始化,那么必须要指定数组长度
int age;
char addr[20];
} stu1;
void main(){
stu1.stuNo=1;
strcpy(stu1.stuName,"stu1" );
stu1.age=23;
strcpy(stu1.addr,"address" );
struct Stu *p;
p=&stu1;
(*p).age=20;
p->age=21;
strcpy(p->stuName, "stu1111" );
//访问某一个结构体实例中的某一个变量 有3中方式
//1 结构体实例名.成员名
//2 (*p).成员名
//3 p->成员名 //在VC中 在一个指针变量后面打.的话 可以直接弹出->
printf("stu1 info is %d, %s ", stu1.stuNo, stu1.stuName);
printf(" %d, %s\n",stu1.age, stu1.addr );
}
指向结构体指针运用1
#include "stdio.h"
#include "string.h"
struct Stu{
int stuNo;
char stuName[20];//定义一个数组的时候 若没有对其初始化,那么必须要指定数组长度
int age;
char addr[20];
};
struct Stu stus[]={
{1,"stu1",23,"add"},
作者: soybean
- 该日志由 soybean 于11年前发表在综合分类下,最后更新于 2013年04月10日.
- 转载请注明: C语言:结构体 | 学步园 +复制链接
抱歉!评论已关闭.