二级指针的理解与应用

二级指针是用来存储一级指针变量地址的指针,声明时,需要在变量名前额外添加一个*

一级指针:指针p = 变量s地址; *p通过p访问s的存储区并对其修改

int *p=&s;

二级指针:二级指针pp = 一级指针变量p的地址; **pp通过pp访问p存储区并对其修改

int **pp=&p;

通过二级指针,交换两个字符指针内容

主函数:

#include<stdio.h>

int main(void){
    char *s1 = "qwer";  //一级指针s1指向字符串"qwer"
    char *s2 = "asdf";
    swap(&s1,&s2);      //交换一级指针地址
    printf("s1=%s\n",s1);
    printf("s2=%s\n",s2);
    
    return 0;
}

交换函数:

void swap(char **ps1,char **ps2)  //二级指针等同于一级指针的地址
                                  //通过访问一级指针存储区的地址来修改它的值
{
    char *temp = NULL; //定义一个空指针
    temp = *ps1;  //ps1为指向一级指针s1的二级指针,对其解引用(*)得一级指针地址
    *ps1 = *ps2;  
    *ps2 = temp;
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值