C 指针示例

int main(void) {
    void swap(int *mp1, int *mp2);
    int a=4, b=5;
    int *pt1, *pt2;
    pt1 = &a;
    pt2 = &b;
    
    printf("ptr address. %p  %p\n",&pt1, &pt2); //指针本身的地址,0x7ffe36d8e688  0x7ffe36d8e680
    printf("Before run. %d  %d\n",*pt1, *pt2);  //指针指向的内容 4,5
    printf("Before run1. %p  %p\n", pt1,  pt2); //指针指向内容的位置, 0x7ffe36d8e698  0x7ffe36d8e694
    swap(pt1, pt2);  //进行交换操作
    return 0;
}
void swap(int *p1, int *p2){
    printf("Before swap-pr %p  %p\n",p1, p2); //传进函数后的,指针代表的还是内容在内存的位置 0x7ffe36d8e698  0x7ffe36d8e694
    printf("Before swap. %d  %d\n",*p1, *p2); //这部分还是代表指针指向的内容 4,5
    int *tmp;
    tmp = p1;
    p1=p2;
    p2=tmp;
    printf("After swap. %d  %d\n",*p1, *p2);  //这部分还是代表指针指向的内容 5,4
    printf("After swap-pr. %p  %p\n", p1, p2); //传进函数后的,同时交换了指针指向的内容的内存位置  0x7ffe36d8e694 0x7ffe36d8e698 

}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值