百度首页 | 百度空间
 
查看文章
 
《The C Programing Language》读书笔记——基本语法7
2008-04-29 14:10

第六章 结构(一)


结构是多个变量的集合,它们类型可能不同,被放在同一个名字下看成一个整体,方便操作。


结构类型的声明:声明一个结构实际上定义了一个类型,可以在花括号后面直接跟变量名列表,并分配存储空间,也可以仅声明结构的模板,之后再利用结构标签定义结构实例。


结构变量的初始化:结构可以通过一个对应各成员的常量表达式列表进行初始化,自动结构还可以通过赋值和返回结构类型的函数进行初始化。


结构可以嵌套:

struct point {

    int x;

    int y;

};

struct rectangle {

    struct point pt1;

    struct point pt2;

} screen;

screen.pt1.x = 100;

screen.pt1.y = 50;


结构不可以用自身递归定义,但可以包含指向自身类型的指针:

struct node {

    struct node* left;

    struct node* right;

    ...

};


对结构的合法操作:复制和作为一个单元对其赋值(包括作为参数传递和作为函数返回值)、用&取地址、访问结构成员。结构之间不能比较。


结构指针:

当一个较大的结构作为参数传递时,传递指向它的指针比拷贝整个结构更为高效。

struct point origin;

struct point *pp = &origin;

origin.x等价于(*PP).x等价于pp->x

访问成员的操作符 . -> 都从左至右结合,具有很高的优先级。


结构数组:数组的每个成员都是一个结构。

struct key {

    char *word;

    int count;

} keytab[NKEYS] = {

    "auto", 0,

    "break", 0,

    "char", 0,

    /* ... */

    "void", 0,

    "volatile", 0,

    "while", 0

};



类别:c/c++ | 添加到搜藏 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码:
 

     

©2008 Baidu