#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
void change1(char **s1,char **s2){
char *temp=*s1;
*s1=*s2;
*s2=temp;
}//交换指针s1,s2
void change2(char *str1,char *str2){
char temp[strlen(str1)+1];
strcpy(temp,str1);
strcpy(str1,str2);
strcpy(str2,temp);
}//交换两个字符串
void change3(int **ppa,int **ppb){
int *temp=*ppa;//*ppa取到pa的值
*ppa=*ppb;
*ppb=temp;
}//pa,pb两个指针地址交换
void change4(int *a,int *b){
int temp=*a;
*a=*b;
*b=temp;
} // 交换a,b
/*
void *swap4(int *pa,int *pb){
int *p=malloc(4);
*p=*pa;
*pa=*pb;
*pb=*p;
free(p);
}//这样也行
*/
void swap1(char **str){
char *pt=str[0];
str[0]=str[1];
str[1]=pt;
}
void swap2(char (*s)[10]){
char str[strlen(s[1])+1];
strcpy(str,s[1]);
strcpy(s[1],s[0]);
strcpy(s[0],str);
}
int main(int argc, char *argv[]) {
//交换a,b
int a=10,b=20;
change4(&a,&b);
printf("a:%d,b:%d\n",a,b);
//交换指针pa,pb
int *pa=&a,*pb=&b;
change3(&pa,&pb);
printf("pa:%p,pb:%p\n",pa,pb);
//交换指针形式的一维字符数组
char *s1="Hello",*s2="world";
change1(&s1,&s2);
printf("s1:%s,s2:%s\n",s1,s2);
//交换一维字符数组
char str1[10]="Hello",str2[10]="world";
change2(str1,str2);
printf("str1:%s,str2:%s\n",str1,str2);
//把str[0] ,str[2]的两个交换一下 这是个指针数组,数组里面存的是指针
char * str[2]={"Hello","world"};
swap1(str);
printf("str1=%s str2=%s\n",str[0],str[1]);
//把s[0]s[1]交换一下
char s[2][10]={"Hello","world"};
swap2(s);
printf("s1=%s s2=%s\n",s[0],s[1]);
return 0;
}
交换代码大全
最新推荐文章于 2022-12-20 18:54:49 发布