友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
合租小说网 返回本书目录 加入书签 我的书架 我的书签 TXT全本下载 『收藏到我的浏览器』

C语言设计-第22部分

快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!


#include〃string。h〃
main(){
  void sort(char *name'';int n);
  void print(char *name'';int n);
  static char *name''={ 〃CHINA〃;〃AMERICA〃;〃AUSTRALIA〃;
                        〃FRANCE〃;〃GERMAN〃};
  int n=5;
  sort(name;n);


  print(name;n);

void sort(char *name'';int n){
  char *pt;
  int i;j;k;
  for(i=0;ia:e24 BASIC foxpro FORTRAN
则运行结果为:
BASIC
foxpro
FORTRAN
该行共有 4 个参数,执行 main 时,argc 的初值即为 4。argv 的 4 个元素分为 4 个字符
串的首地址。执行 while 语句,每循环一次 argv 值减 1,当 argv 等于 1 时停止循环,共循
环三次,因此共可输出三个参数。在 printf 函数中,由于打印项*++argv 是先加 1 再打印,
故第一次打印的是 argv'1'所指的字符串 BASIC。第二、三次循环分别打印后二个字符串。
而参数 e24 是文件名,不必输出。
10。8 有关指针的数据类型和指针运算的小结
10。8。1 有关指针的数据类型的小结

定义
int i;
int *p
int a'n';
int *p'n';
int (*p)'n';
int f();
int *p();
int (*p)();
int **p;

含 义
定义整型变量 i
p 为指向整型数据的指针变量
定义整型数组 a,它有 n 个元素
定义指针数组 p,它由 n 个指向整型数据的指针元素组成
p 为指向含 n 个元素的一维数组的指针变量
f 为带回整型函数值的函数
p 为带回一个指针的函数,该指针指向整型数据
p 为指向函数的指针,该函数返回一个整型值
P 是一个指针变量,它指向一个指向整型数据的指针变量


10。8。2 指针运算的小结
现把全部指针运算列出如下:
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 定义一个结构的一般形式
    在实际问题中,一组数据往往具有不同的数据类型。例如,在学生登记表中,姓名应为
字符型;学号可为整型或字符型;年龄应为整型;性别应为字符型;成绩可为整型或实型。 显
然不能用一个数组来存放这一组数据。因为数组中各元素的类型和长度都必须一致,以便于
编 译 系 统 处 理 。 为 了 解 决 这 个 问 题 , C 语 言 中 给 出 了 另 一 种 构 造 数 据 类 型 ——“ 结 构
(structure)”或叫“结构体”。 它相当于其它高级语言中的记录。“结构”是一种构造类型,
它是由若干“成员”组成的。每一个成员可以是一个基本数据类型或者又是一个构造类型。结
构既是一种“构造”而成的数据类型,那么在说明和使用之前必须先定义它,也就是构造它。
如同在说明和调用函数之前要先定义函数一样。
定义一个结构的一般形式为:
struct 结构名
{成员表列};
成员表列由若干个成员组成,每个成员都是该结构的一个组成部分。对每个成员也必须
作类型说明,其形式为:
类型说明符 成员名;
成员名的命名应符合标识符的书写规定。例如:
    struct stu
    {
        int num;
        char name'20';
        char sex;
        float score;
};
在这个结构定义中,结构名为 stu,该结构由 4 个成员组成。第一个成员为 num,整型变
量;第二个成员为 name,字符数组;第三个成员为 sex,字符变量;第四个成员为 score,
实型变量。应注意在括号后的分号是不可少的。结构定义之后,即可进行变量说明。凡说明
为结构 stu 的变量都由上述 4 个成员组成。由此可见, 结构是一种复杂的数据类型,是数目
固定,类型不同的若干有序变量的集合。
11。2 结构类型变量的说明
说明结构变量有以下三种方法。以上面定义的 stu 为例来加以说明。
1。 先定义结构,再说明结构变量。
如:
struct stu
    {
        int num;

        char name'20';
        char sex;
        float score;
    };
    struct stu boy1;boy2;
说明了两个变量 boy1 和 boy2 为 stu 结构类型。也可以用宏定义使一个符号常量来表示
一个结构类型。
例如:
#define STU struct stu
STU
    {
        int num;
        char name'20';
        char sex;
        float score;
    };
STU boy1;boy2;
2。 在定义结构类型的同时说明结构变量。
例如:
struct stu
    {
        int num;
        char name'20';
        char sex;
        float score;
}boy1;boy2;
这种形式的说明的一般形式为:
struct 结构名

成员表列
}变量名表列;
3。 直接说明结构变量。
例如:
struct
    {
        int num;
        char name'20';
        char sex;
        float score;
}boy1;boy2;
这种形式的说明的一般形式为:
struct

成员表列

}变量名表列;
第三种方法与第二种方法的区别在于第三种方法中省去了结构名,而直接给出结构变量。
三种方法中说明的 boy1;boy2 变量都具有下图所示的结构。
说明了 boy1;boy2 变量为 stu 类型后,即可向这两个变量中的各个成员赋值。在上述 stu
结构定义中,所有的成员都是基本数据类型或数组类型。
成员也可以又是一个结构,即构成了嵌套的结构。例如,下图给出了另一个数据结构。
按图可给出以下结构定义:
struct date

        int month;
        int day;
        int year;
    };
    struct{
        int num;
        char name'20';
        char
返回目录 上一页 下一页 回到顶部 0 0
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!