C/C++不能直接返回一個數組。這是由于在C/C++中,數組不是一種類型,因此不能被直接返回。
成都創新互聯公司專注為客戶提供全方位的互聯網綜合服務,包含不限于網站建設、成都網站制作、當涂網絡推廣、重慶小程序開發公司、當涂網絡營銷、當涂企業策劃、當涂品牌公關、搜索引擎seo、人物專訪、企業宣傳片、企業代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;成都創新互聯公司為所有大學生創業者提供當涂建站搭建服務,24小時服務熱線:028-86922220,官方網址:www.cdcxhl.com
一般有兩種方法來返回一個數組。
第一種方法:
返回一個指向數組的指針,例如char (*retArray)[10]聲明了一個函數retArray,該函數可以返回指向具有10個char元素的數組
第二種方法:
如果你不喜歡用指針的形式返回數組,那么可以采用返回一個結構的形式。這種形式相對較安全,可以避免忘記釋放指針而造成內存泄露,也可以避免訪問懸掛指針造成的錯誤。但缺點是由于結構是先拷貝再返回,因此如果結構較大時,會影響效率和占用較大內存。
這是C的限制,Python調用C也是這種情況
Python中的sum函數,無第二參數時,返回的是數值不是數組,數值為參數1中的數組或其它可迭代對象的全加之和。
在下列幾種情況下,sum函數返回數組:(Python 3版本)
使用了第二參數為axis=0,并且參數1是二維對象,則按列相加并返回數組;
使用了第二參數為axis=1,并且參數1是二維對象,則按行相加并返回數組;
導入了Numpy模塊,并使用了Numpy中的sum函數,并且參數1是二維對象,則默認就是axis=0,即按列相加并返回數組;
import?numpy?as?np??
#python中自帶的sum??
sum([[1,2,3],[4,5,5]])??#返回數值?20
sum([[1,2,3],[4,5,5]],axis=0)?#返回數組?[5?7?8]
sum([[1,2,3],[4,5,5]],axis=1)?#返回數組?[6?14]
#Numpy中的sum??
a?=?np.sum([[1,2,3],?[4,5,5]])?#返回數組?[5?7?8]
注:NumPy是Python的一種開源的數值計算擴展。
使用返回值的方法有兩種:
可以直接把調用的函數作為變量使用
可以用調用函數給一個變量賦值
第一種情況見如下例子:
l = [1,2,3,4,5]
def add_element(list, element):
list.append(element)
return list
print?add_element(l, 6)
# ?[1,2,3,4,5,6]
print?add_element(l, 6)[5]
# 6
第二種情況:
l1 =?add_element(l, 6)
print l1
# ?[1,2,3,4,5,6]
print l1[5]
# 6
注意: 以上例子都是應用于python 2.x