1.目的是在函数中改变数组的内容(数组的内容成功交换)
#include <stdio.h>
#include <string.h>
int main()
{
void Sort ( char* name [], int n);
void print ( char* name [], int n);
char * name [] = { "Follow me" , "BASIC", "Great Wall", "FORTRAN" ,"Computer design" };
int n = 5 ;
Sort (name , n );
print (name , n);
return 0 ;
}
void Sort( char *name1 [], int n )
{
int i = 0 ;
int j = 0 ;
char * temp ;
for ( i = 0; i < n - 1; i ++)
for ( j = 0; j < ( n -1 - i ); j++)
if ( strcmp (name1 [ j], name1[ j + 1])> 0 )
{
temp = name1[ j ];
name1 [j ] = name1[ j + 1];
name1 [j + 1 ] = temp ;
}
}
void print( char *name1 [], int n )
{
int i = 0 ;
for ( i = 0; i < n ; i ++)
{
printf ("%s" , name1[ i ]);
printf ("\n" );
}
}![]()
2.目的是通过交换指针的值来交换a,b的值。(a,b的值无法交换)
#include <stdio.h>
void swap( int * point1 , int * point2 )
{
int * pt =NULL ;
pt = point1;
point1 = point2;
point2 = pt;
}
int main()
{
int a = 3 ;
int b = 7 ;
int * p1 = &a ;
int * p2 = &b ;
swap (p1 , p2);
printf ("%d%d" , a, b );
return 0 ;
}
3.目的是通过交换指针所指对象来交换a,b的值(a,b的值成功交换)
#include <stdio.h>
void swap( int * point1 , int * point2 )
{
int temp =0 ;
temp = *point1;
*point1 = *point2;
*point2 = temp;
}
int main()
{
int a = 3 ;
int b = 7 ;
int * p1 = &a ;
int * p2 = &b ;
swap (p1 , p2);
printf ("%d%d" , a, b );
return 0 ;
}