returnColumnSizes
多见于存在二维矩阵的地方,下面是一个例子:
int** generate(int numRows, int* returnSize, int** returnColumnSizes);
问:returnColumnSizes
是什么?
答:一个一维数组的地址的地址。(地址即指针,后同)
如果你悟了就不用往下看了。但如果还略有疑惑,请跟我继续走一程。
return-Column-Sizes,类似于return-Size,是一个“返回值”,返回的信息是二维数组的列数。
顺带着说一下,returnSize中要返回的信息是二维数组的行数。
问:为什么传入的参数是returnSize是int*
型?
答:因为我们要对传入的参数进行写入,而非只是读取。
问:?
答:如果传入为int
,我们在函数内部对他进行天花乱坠的操作,但是函数一结束,依旧会为原来的值。但是如果传入的是他的地址,我们直接找到它的老窝,把他给改了,那他就真的改了。
这告诉我们:拆家的真的不能惹。比如二哈?
问:那如果我们想要写入传入参数的地址呢?
答:地址也是一个变量(指针变量),我们只需要传入地址的地址,即可。
问:这样子说来,我好像有些懂那个returnColumnSizes
了。
答:一堆叭叭叭,往往不如一个例子来得实在,下面举一个实栗 吧~
实心栗子,干货满满
returnColumnSizes 是一维数组的地址的地址
* returnColumnSizes 是一维数组的地址
(* returnColumnSizes)[i] 是一维数组的i个元素
既然它层层拨开衣服,我们那么羞涩,然后把它脱下来的衣服按照原来的样子,一件件穿回去,自然就可以得到它端庄典雅的样子。
什么?你说穿上就不端庄典雅了?还不赶快过来挨打!┗|`O′|┛