字体
第(2/6)页
关灯
   存书签 书架管理 返回目录
指针运算列出如下:

    1) 指针变量加(减)一个整数:

    谭浩强      C 语言程序设计               2001 年 5 月 1 日

    例如:p++、p--、p+i、p-i、p+=i、p-=i

    一个指针变量加(减)一个整数并不是简单地将原值加(减)一个整数,而是将该指针

    变量的原值(是一个地址)和它指向的变量所占用的内存单元字节数加(减)。

    2) 指针变量赋值:将一个变量的地址赋给一个指针变量。

    p=&a;                (将变量 a 的地址赋给 p)

    p=array;      (将数组 array 的首地址赋给 p)

    p=&array[i];   (将数组 array 第 i 个元素的地址赋给 p)

    p=max;              (max 为已定义的函数,将 max 的入口地址赋给 p)

    p1=p2;        (p1 和 p2 都是指针变量,将 p2 的值赋给 p1)

    注意:不能如下:

    p=1000;

    3) 指针变量可以有空值,即该指针变量不指向任何变量:

    p=NULL;

    4) 两个指针变量可以相减:如果两个指针变量指向同一个数组的元素,则两个指针变量值

    之差是两个指针之间的元素个数。

    5) 两个指针变量比较:如果两个指针变量指向同一个数组的元素,则两个指针变量可以进

    行比较。指向前面的元素的指针变量“小于” 指向后面的元素的指针变量。

    10.8.3 void 指针类型

    ANSI 新标准增加了一种“void”指针类型,即可以定义一个指针变量,但不指定它是指向

    哪一种类型数据。

    11 结构体与共用体

    11.1 定义一个结构的一般形式

    在实际问题中,一组数据往往具有不同的数据类型。例如,在学生登记表中,姓名应为

    字符型;学号可为整型或字符型;年龄应为整型;xìng别应为字符型;成绩可为整型或实型。 显

    然不能用一个数组来存放这一组数据。因为数组中各元素的类型和长度都必须一致,以便于

    编 译 系 统 处 理 。 为 了 解 决 这 个 问 题 , C 语 言 中 给 出 了 另 一 种 构 造 数 据 类 型 ——“ 结 构

    (structure)”或叫“结构体”。 它相当于其它高级语言中的记录。“结构”是一种构造类型,

    它是由若干“成员”组成的。每一个成员可以是一个基本数据类型或者又是一个构造类型。结

    构既是一种“构造”而成的数据类型,那么在说明和使用之前必须先定义它,也就是构造它。

    如同在说明和调用函数之前要先定义函数一样。

    定义一个结构的一般形式为:

    struct 结构名

    {成员表列};

    成员表列由若干个成员组成,每个成员都是该结构的一个组成部分。对每个成员也必须

    作类型说明,其形式为:

    类型说明符 成员名;

    成员名的命名应符合标识符的书写规定。例如:

    struct stu

    {

    int num;

    char n
上一页 目录 下一页