作者larryho (新人伟)
看板C_and_CPP
标题Re: [问题] 二维阵列利用函式改内容
时间Mon Sep 28 17:50:38 2009
※ 引述《tomore (小Q)》之铭言:
※ 引述《larryho (新人伟)》之铭言:
: 请问一下各位大大,在C程式里面,我现在在主程式中(main)里有
: 一个存放字元的二维阵列(假设这样 A[2][2] ),如果我想要用函式
: 的方式去更改或整里里面的内容,例如使用气泡排序法去排序,这
: 样的话我应该如何使用call by reference的方式去做?(主要问题在
: 该传什麽形式的指标给函式(*ptr? *ptr[]?),还有函式内的指标不知
: 如何控制二维阵列(++ptr or what?))
: 第二个问题,如果这样做的话,以一个良好的程式设计习惯来说,到
: 底好还是不好?因为直接用函式直接更改资料,感觉上有点不是很好
: 可是万一资料量太大,如果又再设一个空间给它放,又怕会爆掉~
: 感谢各位的解答,新手问题,请多多包涵~
依你的问题写个简单范例给你参考
void sort(int *ptr,int size){
//*ptr=array[0]
//*(ptr+1)=array[1]
ptr++;
//*ptr=array[1]
//*(ptr+1)=array[2]
}
int main(){
const int size;
array[size];
sort(&array[0],size); // 传递阵列的初始位址及阵列大小
system("pause");
return 0;
}
t大的讲解 有让我更了解了 谢谢
目前还有一个问题 就是向上面的程式码 如果是在二维阵列
sort( ? )函式内的内容一样是传二维阵列的开始位址给他吗?
还有 函式内的 ptr 要如何控制二维阵列呢?
再次感谢 不厌其烦的看完我的问题!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.30.10.154
1F:推 ledia:他问的是二维阵列呢。 09/28 17:24
2F:→ tomore:二维阵列跟一维阵列还不是都一样是连续的记忆体位置 09/28 17:30
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.138.150.144
3F:推 tomore:不懂你说的控制是什麽意思 是指改变阵列中的值吗 09/28 19:13
4F:→ dendrobium:你可以参考看看本版 #17Rwhedo 09/29 19:35