数组作为函数的参数

#include <iostream>
using namespace std;

//int  sum ( int  ap[ ] ,  int  n )
int  sum ( int  *ap ,  int  n )//用指针和用数组名作为参数,效果是一样的
{
   int  m = 0 ;
   for ( int  i = 0 ;  i < n ;  i ++ )
    { 
       m += * ap ; 
       ap ++ ;
    }
    return m;
}
int    printfArr23_1(char myArray[10][30], int iNum)//10无作用 30确定其步长
{
    int i = 0;
    for (i=0; i<iNum; i++)
    {
        printf("%s \n", myArray[i]);
    }
    return 0;
}
int printf2Array_2(char myArray[][30], int iNum)
{
    int i = 0;
    for (i=0; i<iNum; i++)
    {
        printf("%s \n", myArray[i]);
    }
    return 0;
}
int printf2Array_3(char (*myArray)[30],int iNum)
	//int printf2Array_3(char (*myArray),int iNum)//这个用法是错误的
{
    int i = 0;
    for (i=0; i<iNum; i++)
    {
        printf("%s \n", myArray[i]);
    }
    return 0;
}
void main()
{   
    int  a [ 10 ] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 } ;
    cout << "sum = " << sum ( a , 10 ) << endl ;
	int i = 0;
    char myArray[10][30] =  {"ccccc", "aaaa", "bbbb","11111"}; //
    printf2Array_2(myArray, 4);//二维数组名同样代表数组首元素的地址
    printf2Array_3(myArray, 4);//多维数组名本身就是一个数组指针
    system("pause");
}

运行结果

猜你喜欢

转载自blog.csdn.net/weixin_38145317/article/details/82021346