实参看情况比如
创新互联公司专业为企业提供下花园网站建设、下花园做网站、下花园网站设计、下花园网站制作等企业网站建设、网页设计与制作、下花园企业网站模板建站服务,十多年下花园做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
1 .char array[10][10];
则可以将array 传入。
2 当然也可以 char **array;然后自己申请内存。
接着将array传入。
3 或者char *array;
将array传入。
当然要看你是什么用法。
从你的函数来看你估计是要传一个二维数组首地址,也就是第一个。
二级指针也是变量。
既然问题中说“二级指针向被调函数传递了地址”,传址后被调函数改变了该变量的值,主函数中变量值自然也变。
二级指针就是指向指针的指针,里面的值就是一个指针的地址。你传址后,把二级指针指向的指针换成其他指针。里面值自然就变了。
int arr[5][6]; //实参
void func(int (*p)[6], int row); // 函数.
调用的话,
func(arr, 5);
void ChangeStrPo(char **p)改为 char** ChangeStrPo(),然后main里,ps=ChangeStrPo();
说明,你原来的changestrpo,p是ps的副本,malloc后,p改变了值,但是ps并没有改变。当传递指针的时候,可以通过*ps来改变指针所值的地址内存放的值,但是是改变不了实参ps本身的值。
二维指针初始化分配空间分成两步操作: 先分配二维指针的行数 再分配每行的数据空间 如: int **p;int n=10;int m=100;p=(int **)malloc( n*sizeof(int *) ); //分配n行for( i=0;i