|
![]() | 作者: jaychou [jaychou]
![]() |
登录 |
以下不能对两个整形值进行交换的是 第一个:main() {int *a=0,*b=0; *a=10,*b=20; swap(a,b); printf("%d,%d\n",*a,*b);} swap(int *p,int *q) {int t; t=*p;*p=*q;*q=t;} 第二个:main() {int a=10,b=20,*x=0,*y=0; *x=&a,*y=&b; swap(x.y); printf("%d,%d\n",a,b);} swap(int *p,int *q) {int t; t=*p;*p=*q;*q=t;} 另外两个肯定都对,这两个我觉得两个都不对,因为指针是不能在不附地址的情况下直接被附值的,而且指针被附0就等于是null的空指针,怎么还能指向呢?请各位帮忙给我解释一下 |
地主 发表时间: 05-08-21 22:30 |
![]() | 回复: xiazhifei [xiazhifei] ![]() |
登录 |
设p为指针变量,则p==0表明p是空指针,它不指向任何变量;p!=0表示p不是空指针。空指针是由对指针变量赋予0值而得到的。例如: #define NULL 0 int *p=NULL; 对指针变量赋0值和不赋值是不同的。指针变量未赋值时,可以是任意值,是不能使用的。否则将造成意外错误。而指针变量赋0值后,则可以使用,只是它不指向具体的变量而已。![]() |
B1层 发表时间: 05-08-23 10:21 |
![]() | 回复: saman [saman] ![]() |
登录 |
我看着没错啊,交换数据地址,然后达到交换数据的效果,对啊 |
B2层 发表时间: 05-08-24 01:22 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号