=>
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
}