今天讲到结构体,在讲之前先把前天布置的几道针指的练习题先讲了。那些题目都是老潭书里的指针那章,大家自己慢慢做做喔,用来掌握指针很重要喔,学编程就是要多实践。今天我上网里看到了一篇很好的文章,我帖下来:
发信人: ycs830 (老山羊), 信区: C
标 题: Re: 如果快速学会C语言
学会C语言很容易,它没几个语句,没几个函数。但用是另一回事。就象
华山剑法难学,令狐师兄学了若干年,但还是谁也打不赢。独孤求败只有三
招,令狐师兄却熬了若干小时就学会,但他先看了各派剑法,融会贯通需要
和高手来回打架。
学C是一个过程,我现在看C和十年前观念很不一样。说到底,C只是一个
工具,问题是你要干什么,怎么干。C玩好了就象独孤九剑学好了,你可以俯
视其它剑法。但岳不群学独孤九剑就不见得有令狐冲的效果。
学数学对逻辑思维能力是个锻炼。我的数学知识大部分还给了老师,但
逻辑思维能力却对编程极有用。数分、高代、空解作为数学系的基础课,确
实对我很有用。C语言是死的,算法是活的,就象独孤九剑本无招--在融
天下剑法之后。
大家觉得怎么样?自己慢慢思考吧。
好了,现在该讲讲今天的课题了,结构体。我们先来了解一下什么叫结构体,其实结构体就像数据库里的记录,结构体里面的就相当于一条记录里的各个属性,我们在描述一样东西通常都是集在一起的一个整体,就好比像一个学生吧,学生有他相关的属性,比如姓名、年龄、性别、班级等等。我们编程里虽然可以定义多个变量来分别代表着这些属性,令可这样一个一个分开来何必不将他们集中在一个整体里呢,所以C语言里就考虑到这个有了结构体。我们看看如何定义一个结构体,如下:
struct student
{
char name[10];
char sex;
int age;
:
:
}; /*注意喔,这个分号是一定要的喔*/
这里定义的是一个结构体student,但这绝对不是定义了一个可以调用的变量,这只是声明好有这么一个结构,我们要学定义一个结构的变量的话,就像定义其实类型一样:
int a,b;
和
struct student a,b;
都是同一个道理,都只是定义一个变量,类型就是看前面的了。一样可以定义其它的类型,比如struct student *p;这也是正确的(结构体数组也是有的喔)。这种指针类型可是以后要讲到的链表里很重要的喔,那么先来看看这种结构体指针先吧。我们同样可以用指针的方法指向这个结构体的首地址:
a.sex='m';这是最调用结构体里的元素运算符 .
struct student *p;
(*p). sex='m';这里一样也是这样来表示,不过结构体有另一种很好的表示方式,用到了另一个运符号->。p->sex='m';我们来这样理解这个表达式,p是地址,->这个是指向这个结构体里的,p->sex就是指向这个结构体里的元素了。
时间过得很快,没有讲到多少就快放学了。好了,我也不多说了,今天就这样吧。