C语言 交换指针

Python013

C语言 交换指针,第1张

int p[]

=>

p = &p = &p[0]

&p , 可视作一个忽略[0]语法标示的缩写.

swap(&p, &q)

=>

swap(&p[0], &q[0])

=>

1 <=> 5

基本上变量宣告後, 其位址不可变更. 此功能应采用额外的指针变量, 进行交换操作.

int *arry[10] //指针数组 int (*arryp)[10] //数组指针,因为数组指针指向数组,而数组也可看做是个指针,那数组指针可以理解为一个二 级指针 int a[10] arryp = &a //将数组地址个数组指针 arry[0] = *arryp //arry[0]是一级指针,要将数组指针赋给指针数组,就要取内容,实际就是 arry[0] = a

huan(int

*p1,int

*p2)这个函数中,交换的只是两个指针的指向,但是函数的结束、返回,这两个指针本身就消失了(它们的值并不会传回到main()函数中)所以,最后的结果没有交换。

如果要起到交换的作用,这个函数应该这样写:

void

huan(int

*p1,int

*p2)

{

int

t

t=*p1

*p1=*p2

*p2=t

}