当前位置: 代码迷 >> C语言 >> 指针问题面面看
  详细解决方案

指针问题面面看

热度:75   发布时间:2006-07-12 19:49:48.0
....都? 没没没 我还是个菜蛋 正在努力中...

给自己一个目标而已

我差的远呢 不过 我楼上的 的确是高手 我刚学C的时候 就晓得了!
----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-12 12:43:08
龙轩v亚风

等 级:新手上路
威 望:1
帖 子:1073
专家分:0
注 册:2006-4-20
  得分:0 
哦 对对  我现在 刚刚看见 “门” 正往那努力的跑呢
----------------解决方案--------------------------------------------------------

对了。上面的指针高手,我问个问题;如果
int a[5]={1,2,3,4,5}; // 2个数组,也可能是2个结构,或函数
int b[5]={11,22,33,44,55};
pa=a;pb=b;
fun(pa,pb);

int fun(paa,pbb); //现在交换2个数组,用指针;
{
int ti; //有人说用 *ti,
ti=paa;paa=pbb;pbb=ti;
}
这个题目,我做了很久。一直做不成。有人说。在函数用循环。我认为如果这样,那么指针就没意义了。

希望能解答下!谢谢


----------------解决方案--------------------------------------------------------

实参变量和形参变量之间的数据传递是单向的值传递方式.指针变量作函数参数也要遵循这一规则!


----------------解决方案--------------------------------------------------------
不。指针可以 双向的。
----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-12 16:08:26
lxs5216

等 级:新手上路
帖 子:144
专家分:0
注 册:2006-2-3
  得分:0 
以下是引用★红狼在2006-7-12 22:44:35的发言:
不。指针可以 双向的。

在C中好象函数就是只能单向值传递,你说的指针可以双向的<我不知道是何意思>!

硬要说指针是双向,那只能说是在函数中使两个指针指向位置对调了,其实并没有实现值的双向传递,在楼主贴子中早就提到了,指针是一种特殊的变量,而有师兄要说成是特殊的类型也没错,指针这一“特殊”就是体现在函数传递中:

函数返回值只能是一个,而指针和全局变量的出现就使函数与调用函数程序之间多建立了一种变量传递方式!

终上所述,在C中指针也是单向传递,只不过指针所指位置改变,从而造成了一系列的假象!
----------------解决方案--------------------------------------------------------

提示: 作者被禁止或删除 内容自动屏蔽

2006-07-12 23:48:03
★红狼

等 级:论坛游民
帖 子:190
专家分:17
注 册:2006-7-12
  得分:0 
以下是引用穆扬在2006-7-13 0:08:26的发言:

15楼疯狂VC的回答非常正确
但你好象没懂
我只好画蛇添足地补充一下
如果你想交换pa、pb的值
那么函数原型应该是
void jiaohuan(int **,int**);
但即使这样数组也没有交换
顺便说一句
你的pa,pb没有定义
表明你非常的不够严谨
我原谅你这一次

是好多没定义。还有说明。
我只是 作个 筐架。

关于 指针 能不能双向。。我找了几本书。就是这样说的。可以双向传输的。
指针指向的值改变了。指针没变。 所以应该是没问题的啊。
穆扬 这样jiaohuan(int **,int **) 这样做是绝对真确了。

我是这样迷惑的, 指针就是个地址。那么地址也是个int 数。那么

交换时。为什么要 int *ti 呢?int ti。为什么不可以?


----------------解决方案--------------------------------------------------------
  相关解决方案