10.1.5 指向指针的指针 可以定义一个指针变量pp存储另一个指针变量p的地址,这个变量pp,就是
指针变量也是变量,它在内存中也分配存储空间,因此,指针变量也有地址。
指向指针变量p的指针变量。 定义指向指针的指针的一般形式:
类型名 ** 变量名;例如:int a=10, *p=&a, **pp=&p; 利用指针变量对数据进行访问是“间接访问”,普通的指针变量用的是“单
级间址”,而指向指针的指针使用的则是“二级间址”。 变量名:pp 地址:1310580 变量名:p 地址:1310584 变量名:a 地址:1310588
值:1310584
值:1310588
值:10
10.2 指针与函数 10.2.1 指针变量作为函数参数 10.2.2 函数的返回值为指针(*) 10.2.3 指向函数的指针(*)
10.2.1 指针变量作为函数参数 用指针做参数,实际参数和形式参数之间仍然是值传递,
即在调用函数时,把实际参数的值赋给形式参数。被调函 数中虽然不能改变作为实际参数的指针变量的值,但可以 改变指针变量所指变量的值,从而达到在被调函数中修改 主调函数中变量的目的。 用指针变量作为函数参数,可以获得从函数中带回多于一
个值的客观效果。
10.2.1 指针变量作为函数参数例10.2.1调用函数,交换两个 变量的值。 //程序1,使用整型参数: #include <stdio.h> void swap(int x , int y) { int temp; temp=x; x=y; y=temp; //交换形参x,y的值 }程序运行结果: 请输入两个整数a和b:3 5 调用函数前:a=3 b=5 调用函数后:a=3 b=5
void main() { int a,b; printf(“请输入两个整数a和b:”);
scanf("%d%d",&a,&b);printf("调用函数前: a=%d\tb=%d\n",a,b); swap(a,b); printf("调用函数后: a=%d\tb=%d\n",a,b);}