程序员考试笔记十一:结构体

企业动态
程序员考试笔记(连载中...)

今天讲到结构体,在讲之前先把前天布置的几道指针的练习题先讲了。那些题目都是老潭书里的指针那章,大家自己慢慢做做喔,用来掌握指针很重要喔,学编程就是要多实践。今天我上网里看到了一篇很好的文章,我帖下来:
 
发信人: 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就是指向这个结构体里的元素了。

【相关文章】

  1. 程序员考试笔记十:数组
责任编辑:丁小雨 来源: 51CTO.com
相关推荐

2009-01-16 19:49:49

程序员考试数组指针

2009-01-07 21:03:53

程序员循环语句

2009-01-07 21:00:05

2009-01-08 21:25:51

程序员笔记

2009-01-08 21:21:45

程序员笔记

2009-01-10 23:38:16

程序员考试笔记

2009-01-05 15:56:00

软考程序员

2019-05-16 08:36:53

Eureka缓存网关

2013-05-30 10:02:07

2013-08-20 09:33:59

程序员

2012-03-06 09:22:46

程序员

2020-05-06 15:59:07

JavaScript程序员技术

2020-05-09 11:20:02

Java结构图虚拟机

2018-04-23 09:16:47

程序员知识体系

2009-05-21 15:58:12

程序员工作经验职场

2011-05-13 14:34:02

程序员

2011-04-15 10:38:31

程序员

2017-11-13 11:46:33

2022-03-16 11:10:19

程序员社区技术

2015-04-10 19:37:34

程序员
点赞
收藏

51CTO技术栈公众号