成都创新互联网站制作重庆分公司

c语言数组指针传递给函数,c语言二维数组指针传递

C语言中 指针做函数参数传递二维数组

#include stdio.h

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:空间域名、虚拟主机、营销软件、网站建设、峨山县网站维护、网站推广。

void fun(int (*p1)[3],int (*p2)[3]);

int main()

{

int p1[3][3]={{7,8,9},{4,5,6},{1,2,3}} ;

int p2[3][3] = {0};

int i = 0, j = 0;

fun(p1,p2);

for(i = 0;i 3;i++){

for(j = 0;j 3;j++){

printf("%d ",*(*(p2+i)+j)); 

}

printf("\n");

}     

return 0;

}

void fun(int (*p1)[3],int (*p2)[3])

{

int i = 0,j = 0;

for(i = 0;i 3;i++){

for(j = 0;j 3;j++){

*(p2[j]+i) = *(p1[i]+j);

}

}

}

扩展资料:

函数指针的声明方法为:

返回值类型 ( * 指针变量名) ([形参列表]);

其中,“返回值类型”说明函数的返回类型,“(指针变量名 )”中的括号不能省,括号改变了运算符的优先级。若省略整体则成为一个函数说明,说明了一个返回的数据类型是指针的函数,后面的“形参列表”表示指针变量指向的函数所带的参数列表。例如:

int func(int x); /* 声明一个函数 */

int (*f) (int x); /* 声明一个函数指针 */

f=func; /* 将func函数的首地址赋给指针f */

或者使用下面的方法将函数地址赋给函数指针:

f = func;

赋值时函数func不带括号,也不带参数,由于func代表函数的首地址,因此经过赋值以后,指针f就指向函数func(x)的代码的首地址。

参考资料:

百度百科-函数指针

C语言新手问题之用指针来将数组传递给函数.

int (*ptr)[4]

ptr是一个指针,他指向的类型是一个长为4的数组,数组的类型是int

简单的说,ptr是一个指向int[4]的指针

43行是把上面说的那种类型转成int*类型

如果你要问为什么可以这么转,那其实C语言怎么转都行,只要程序员自己知道自己在做什么。。

这里的话,因为ptr是指向int[4]的,也就是说他是指向一个int[4]的第一个元素的,所以ptr存储的是int[4]的第一个元素的地址,也就是一个int数据的地址,那当然可以转成int*,从逻辑上讲也是没问题的~

请问在C语言中,函数传参时怎样利用指针传递数组

数组名就是指针,例如:

#include stdio.h

void pr(char *p)

{

printf(p);

}

void main(void)

{

char s[] = "abc";

pr(s);

}

扩展资料:

注意事项

非数组类的声明尽量以指针的方式进行比较好。倘若一个指针指向的内存并不是一个数组,那么采用数组名的声明方式或许就会给人产生错误的引导。类似的,如果指向的是一个数组区域,则会给人以更加丰富的信息。例如:

int main(int argc,char* argv[])

{

/* code here */

}

int main(int argc,char** argv)

{

/* code here */

}

两种方式完全等价,但是前面一种能够更清晰地看出:这个参数是指向某个元素起始地址的指针,而后面的这种方式则不能够直观地看出这种含义。

c语言的数组怎么传递到函数里面

例:

#includestdio.h

void fact(int *p, int n)

{

for(i = 0; i  n; ++i)

{

printf("%d ", p + i);

}

printf("\n");

p[3] = 6;

}

int main()

{

int a[5] = {1, 2, 3, 4, 5};

fact(a, 5);

for(i = 0; i  5; ++i)

{

printf("%d ", a[i]);

}

printf("\n");

return 0;

}


文章题目:c语言数组指针传递给函数,c语言二维数组指针传递
本文网址:http://cxhlcq.com/article/hcjcpe.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部