一、数组作函数参数:数组元素作函数参数和数组名做函数参数。
数组名作函数参数:
数组名除了表示数组的名称以外,还代表了数组在内存中的首地址。数组名作实际参数的传递方式为地址传递。
二、求数组的长度:
int lenset1 = sizeof(set1)/sizeof(set1[0]);//一个矩阵的长度可以这样求 int lenset1_1 = sizeof(set1[0])/sizeof(set1[0][0]); //但是string数组的长度可以使用strlen(sss)来求。如果string也要使用上述方法时,需要在后面减1,减去\0所占用的位置。 int lenstr = sizeof(set1)/sizeof(set1[0])-1;
如果求数组的长度不在main函数中进行,或者有过一次指针传递,那么首地址set1将退化为指针,且不可再得到其长度信息。
void getLength(int set1[]){...}//这种情况将无法得到set1的数组长度 int a[4]; int *p = a; cout<<sizeof(a)<<endl; //4*4=16字节 cout<<sizeof(p)<<endl; //1*4=4字节。因为已经退化成指针,不再包含长度信息了