读书人

返回值替行指针

发布时间: 2013-07-11 15:38:46 作者: rapoo

返回值为行指针
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;
}

读书人网 >C++

热点推荐