c语言关于指针的例题

[复制链接]
查看11 | 回复4 | 2009-7-19 11:28:59 | 显示全部楼层 |阅读模式
指针指向的内存地址的值发生交换,但指针自身指向的地址是不变的,没错啊。指针自己的值没有变,原来指向20#的现在还是指向20#,但20#桌坐的女生已经和30#桌的换了。...
回复

使用道具 举报

千问 | 2009-7-19 11:28:59 | 显示全部楼层
void swap(int*,int*)函数接受的是一个指针,就算你可以理解成它拷贝了值,是,它拷贝了&x,&y到*a,*b里了,但是,你没有发现,*a其实还是指向x吗?这样一交换,不就结了吗。举个例子。假设x的地址为0x0069857(乱编的),然后,传递进函数的时候,它只是传值,并没有传引用,然后呢,int *a把0x0069857复制为自己的值...
回复

使用道具 举报

千问 | 2009-7-19 11:28:59 | 显示全部楼层
因为swap这是地址传递,所以形参可以改变外部对应变量即实参的值。要是值传递的话,就和你理解的一样了。...
回复

使用道具 举报

千问 | 2009-7-19 11:28:59 | 显示全部楼层
#includevoidmain()/*main写错了!*/{inta[3][3]={{1,1,1},{1,1,1},{1,1,1}};int*p;for(p=a[0];p<a[0]+9;p++)printf("%3d",*p);/*p也是,应该是小写才对。。*/}...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行