首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

返回值替行指针

2013-07-11 
返回值为行指针int (*)[4]search(int (*p)[4]);能不能返回行指针??[解决办法]简单点,可以直接用typedef[解

返回值为行指针
int (*)[4]    search(int (*p)[4]);
能不能返回行指针??
[解决办法]
简单点,可以直接用typedef
[解决办法]

引用:
Quote: 引用:

是可以的,行指针是一维指针。
  int (*)[4]    search(int (*p)[4]); 报错!!!

这个int(*)[4]是一个指向四个int类型单元一维指针,不是简单的int *p;类似这样的一维指针。你定义的指针加1移动的是4 * 4共16个字节的。
[解决办法]
返回值为指针的函数,其类型也必须为指针类型的。而且只能返回函数中作为实参传递的指针。当然也可以对程序中的全局变量或者函数中声明为static的变量用指针方式返回变量 的地址。
[解决办法]
1. typdef可以简化
typedef int (*PARR)[4];
PARR search(PARR arr)
{
  return arr;
}

2. int (*)[4]    search(int (*p)[4]);语法错误, 应该
int (*search(int (*p)[4]))[4]
{
return p;
}

热点排行