字体
第(2/6)页
关灯
   存书签 书架管理 返回目录
变量,规定它们可以指向整型变量。程序第 5、6 行的作

    用就是使 pointer_1 指向 a,pointer_2 指向 b。

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

    2) 最后一行的*pointer_1 和*pointer_2 就是变量 a 和 b。最后两个 printf 函数作用是相

    同的。

    3) 程序中有两处出现*pointer_1 和*pointer_2,请区分它们的不同含义。

    4) 程序第 5、6 行的“pointer_1=&a”和 “pointer_2=&b” 不能写成“*pointer_1=&a”和

    “*pointer_2=&b”。

    请对下面再的关于“&”和“*”的问题进行考虑:

    1) 如果已经执行了“pointer_1=&a;”语句,则&*pointer_1 是什么含义?

    2) *&a 含义是什么?

    3) (pointer_1)++和 pointer_1++的区别?

    【例 10.2】输入 a 和 b 两个整数,按先大后小的顺序输出 a 和 b。

    main()

    { int *p1,*p2,*p,a,b;

    scanf("%d,%d",&a,&b);

    p1=&a;p2=&b;

    if(a
    {p=p1;p1=p2;p2=p;}

    printf("\na=%d,b=%d\n",a,b);

    printf("max=%d,min=%d\n",*p1, *p2);

    }

    10.2.3 指针变量作为函数参数

    函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针类型。它的作用是将

    一个变量的地址传送到另一个函数中。

    【例 10.3】题目同例 10.2,即输入的两个整数按大小顺序输出。今用函数处理,而且用指

    针类型的数据作函数参数。

    swap(int *p1,int *p2)

    {int temp;

    temp=*p1;

    *p1=*p2;

    *p2=temp;

    }

    main()

    {

    int a,b;

    int *pointer_1,*pointer_2;

    scanf("%d,%d",&a,&b);

    pointer_1=&a;pointer_2=&b;

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

    if(a
    printf("\n%d,%d\n",a,b);

    }

    对程序的说明:

    swap 是用户定义的函数,它的作用是jiāo换两个变量(a 和 b)的值。swap 函数的形参

    p1、p2 是指针变量。程序运行时,先执行 main 函数,输入 a 和 b 的值。然后将 a 和 b 的地

    址分别赋给指针变量 pointer_1 和 pointer_2,使 pointer_1
上一页 目录 下一页