| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 17709 人关注过本帖
标题:C++中函数怎么返回一个二维数组。指针怎么指向二维数组?
只看楼主 加入收藏
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
原帖由 [bold][underline]wch27149[/underline][/bold] 于 2008-1-8 15:16 发表 [url=http://bbs.][/url]
没有返回数组的方法?那这个程序是怎么返回一维数祖的?
//change the content of an array using a function
#include
using namespace std;

void cube(int* n, int num);

int main(){
int i, nums[10];

for (i=0;i ...

那请你先学好基础,什么是函数返回值,你的函数返回值声明为void,也就是根本没有返回
2008-01-08 16:25
wch27149
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2007-10-24
收藏
得分:0 
哦,明白了,谢谢

我叫wch,编号27149
感谢little monkey同学。
2008-01-08 17:20
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
原帖由 [bold][underline]雨中飞燕[/underline][/bold] 于 2008-1-8 12:03 发表 [url=http://bbs.][/url]
你说对了,根本没有返回数组的方法,你所使用的方法是初学者犯的严重错误之一

  顶一下!!!数组的本质就是指针,,,如果能返回数组,那么它一定有界.....但是返回值都是指针,没有界,也就谈不上是数组了~~

樱花大战,  有爱.
2008-01-08 17:24
lf426
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-12-15
收藏
得分:0 
数组与表示数组的指针是描述同一个问题的两种形式,实际上是一样的。
C++中,在函数部分很清楚的说明,形参中的数组将直接与指针同等对待。
“根本没有返回数组的方法”在狭义上是正确的,这是为了指明楼主的错误;但是广义上讲是不正确的,因为返回指针,就是在C++中返回数组的方法。
楼上就更扯淡了,哪本书告诉你“有界”才是数组,你自己发明的词吧。又有哪本教材在讲述函数返回数组的时候没有“界”了?void cube(int* n, int num)中那个int num不是你所谓的“界”是什么?
2008-01-08 18:12
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
难道LS没听过数组越界?
  如果你想知道可以看《C++必会必知》,,,

樱花大战,  有爱.
2008-01-08 18:49
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
再回#14:
  你的那个num是你加的??你为什么要加啊??可否告诉我?

樱花大战,  有爱.
2008-01-08 18:51
wch27149
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2007-10-24
收藏
得分:0 
那个num的作用是让nums这个数祖的序数,依次递减,好像不是界吧

我叫wch,编号27149
感谢little monkey同学。
2008-01-08 19:18
lf426
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-12-15
收藏
得分:0 
数组的定义是指有序数据的集合。
有界的是这个“有序数”,就是下标,C++中[]里面的数字。
即使有序数越界,数组还是数组,虽然不一定是你定义的数组,甚至可以说是非法的数组,但是并没有违背“有序数据的集合”的定义。
2008-01-08 19:46
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
呵呵,,,,如果你不给这个num,你知道数组的上限在哪么?就算你知道,编译器不知道!!!!  听过有界函数么??界的含义就是限定一个范围~~还是请你去看看《C++必会必知》.........

樱花大战,  有爱.
2008-01-08 19:50
VanHorn
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2008-1-8
收藏
得分:0 
通过楼上各位高手的讲解,兄弟虽然没有全听明白,但是通过版主,14楼,15楼等的讲解,函数返回数组一说是被否定了。那么我想返回的就只能是指针了,那么通过指针给数组赋值就只能通过for语句之类的循环了吧。就类似我在7楼的做法。
    如果一个指针指的是一个二维数组,这个指针应该怎么指呢?就如同我在1楼发的问题。我试过很多中做法,但编译器都是无法通过的。
例如:
int a[20][20],*p1,**p2;
p1=a;//用二维数组的地址传递给一维指针,这个用法显然是不对的,编译器无法通过,
p2=a;//编译器同样没法通过。这里,我就想问问懂的高手,怎样用一颗指针指向二维数组。

[[italic] 本帖最后由 VanHorn 于 2008-1-9 11:28 编辑 [/italic]]
2008-01-09 11:10
快速回复:C++中函数怎么返回一个二维数组。指针怎么指向二维数组?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.046263 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved