设为首页 加入收藏

TOP

实例介绍C语言结构的用法
2014-11-23 21:42:01 来源: 作者: 【 】 浏览:11
Tags:实例 介绍 语言 结构 用法
*/
#include
struct date { // 定义一个日期结构
int year; // 年
int month; // 月
int day; // 日
};

struct student { //定义一个学生结构,其中birthday生日为一个日期结构,也就是说结构是可以嵌套的
char *name; // 姓名
int id; // 身份证号
struct date birthday; // 生日
};

void quoteStructNormal() { // 测试结构的正常调用
struct student liky;
liky.name = "liky green";
liky.id = 7173;
liky.birthday.year = 1990;
liky.birthday.month = 10;
liky.birthday.day = 18;

printf("likys name: %s ", liky.name);
printf("likys id: %d ", liky.id);
printf("likys birthday year: %d ", liky.birthday.year);
printf("likys birthday month: %d ", liky.birthday.month);
printf("likys birthday day: %d ", liky.birthday.day);
}

void quoteStructPointer() { // 测试结构指针的调用
struct student lucy = {"liky", 5173, {1990, 10, 18}};
struct student *liky;
liky = &lucy;

(*liky).id = 5173;
(*liky).name = "liky";
(*liky).birthday.year = 1990;
(*liky).birthday.month = 10;
(*liky).birthday.day = 18;

printf("likys name: %s ", (*liky).name);
printf("likys id: %d ", (*liky).id);
printf("likys birthday year: %d ", liky->birthday.year);
printf("likys birthday month: %d ", liky->birthday.month);
printf("likys birthday day: %d ", liky->birthday.day);
}

// 这里测试结构指针
void testDatePointer() {
struct date *today;
struct date tomorrow;
// = {1990,10,18}

today = &tomorrow;

today->year = 1990;
today->month = 10;
today->day = 18;

printf("year: %d ", (*today).year);
printf("month: %d ", (*today).month);
printf("day: %d ", (*today).day);
}

// 这里测试将结构指针作为参数传递
void testStructParam(struct student * stu) {
printf("stus name: %s ", (*stu).name);
printf("stus id: %d ", (*stu).id);
printf("stus birthday year: %d ", stu->birthday.year);
printf("stus birthday month: %d ", stu->birthday.month);
printf("stus birthday day: %d ", stu->birthday.day);
}

void main() {
//quoteStructNormal();
//quoteStructPointer();
//testDatePointer();
// 以下为测试结构数组
struct student lucy = {"liky", 5173, {1990, 10, 18}};
struct student stus[3] = {{"liky", 9173, {1990, 10, 18}},{"lucky", 5173, {1990, 10, 18}},{"lucy", 6173, {1990, 10, 18}}};
int i;

for (i=0; i<3; i ) {
printf("stus[%d] name: %s ", i, stus[i].name);
printf("stus[%d]s id: %d ", i, stus[i].id);
printf("stus[%d]s birthday year: %d ", i, stus[i].birthday.year);
printf("stus[%d]s birthday month: %d ", i, stus[i].birthday.month);
printf("stus[%d]s birthday day: %d ", i, stus[i].birthday.day);
}

// 这里测试将结构指针作为参数传递
testStructParam(&lucy);

}

/*
很多人对于结构的用法不是很熟悉,尤其是结构的嵌套和结构指针,在这里写几个示例,希望有所帮助
*/
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇生产者与消费者模型Linux下C语言.. 下一篇写给新手 选择结构程序设计总结

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: