知了博客

集天地之精华,吸日月之灵气

« 今年最雷人的200条个性签名线路板设计软件(PCB设计软件)详细综述 »

C语言中swap问题

这道题问题关键在于理解:指针
要交换的是str1与str2的指针
却交换了str1与str2


#include <stdio.h>

void swap(char *p1, char *p2);

int main(void) {
    char str1[100]="This is my String.";
    char str2[100]="Another String.";
    char *p1=str1;
    char *p2=str2;
    printf("1---Address:p1=%p,p2=%p\n",p1,p2);
    printf("Before swap:\np1:%s\np2:%s\n",p1,p2);
    swap(p1,p2);
    printf("4---Address:p1=%p,p2=%p\n",p1,p2);
    printf("After swap:\np1:%s\np2:%s\n",p1,p2);

    getchar();
    return 0;
}


void swap(char *p1, char *p2) {
    char *pt=p1;
    p1 = p2;
    p2 = pt;
}

1---Address:p1=0x22ccc0,p2=0x22cc50
Before swap:
p1:This is my String.
p2:Another String.
4---Address:p1=0x22ccc0,p2=0x22cc50
After swap:
p1:This is my String.
p2:Another String

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Arwen Build 90619 Code detection by Codefense  theme by BokeZhuti

Copyright know blog. Some Rights Reserved.站长(msn):webmaster#webgou.info(#换成@) 粤ICP备09183716号