c语言函数指针传参数,c语言指针作为函数参数传递

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

C语言中

站在用户的角度思考问题,与客户深入沟通,找到沂水网站设计与沂水网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站制作、网站建设、企业官网、英文网站、手机端网站、网站推广、主机域名、网页空间、企业邮箱。业务覆盖沂水地区。

指针做函数参数传递二维数组有两种基本方法:

1、传递“数组指针”

#include stdio.h

void output( int (*pa)[3], int n )//这个函数只能输出n行3列的二维数组

{

int i,j;

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

for( j=0;j3;j++ )

printf("%d ", pa[i][j] );

printf("\n");

}

}

void main()

{

int a[2][3]={

{1,2,3},

{4,5,6}

};

output(a,2);

}

2、传递“指针数组”

先将二维数组的行指针存储到一个指针数组中,再将指针数组传递到子函数中去。

#include stdio.h

void output( int *pa[], int row,int col ) //这个函数更通用,但调用前,要做好准备工作。

{

int i,j;

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

for( j=0;jcol;j++ )

printf("%d ", pa[i][j] );

printf("\n");

}

}

void main()

{

int a[2][3]={

{1,2,3},

{4,5,6}

};

int i;

int *pa[2];

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

pa[i]=a[i];

output(pa, 2, 3);

}

请问在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语言 指针 传参

问题在你这个函数的定义参数void find(float a[],float *pmax,float *pmin)

你在函数内对后2个参数直接进行了赋值。

{pmax=a[t];}

if(a[t]*pmin)

{pmin=a[t];}

你在函数内赋值并不会被外部的参数造成影响,你需要把用指针的引用才行

float* pMax, float* pmin

这样在函数内的赋值才有效果

c语言 函数参数传递 与指针问题

这是个函数指针 前面的void为返回值类型 后面的void*为参数类型.

函数指针是可以作为某个函数的参数的.

(1) 指向函数的指针变量的一般定义形式为:

数据类型 (*指针变量名)(函数参数列表)

函数名是可以缺省的 作为参数传递的时候会去调和 void*(*)(void*)这个类型相匹配的函数的

作为参数调用这个函数的时候 返回类型是void* 就相当于传了一个参数类型为void*,当然这个函数指针的参数也是void*的

关于C语言函数传递指针参数,帮我看看我的程序

你的地址值传递错误,按照我给你修改的试试看,一定要注意你的实参传递的是地址还是具体的值,如果是地址,在子函数中就不要去修改你传递进来的地址。

int

main(void)

{

int

data=0;

//此处随机分配内存空间,不要用指针

myStack=makeStack(myStack,top);

Push(myStack,3);

Push(myStack,8);

Push(myStack,19);

Push(myStack,31);

Push(myStack,43);

Push(myStack,36);

Pop(myStack,data);//此处,传递的是地址值

printf("%d

",data);

}

int*

Pop(LinkedStack

myStack,int

*data)

{

pStack

cursor=myStack;

if(Stack_Empty())

{

}

else

{

while(cursor-next!=top)

{

cursor=cursor-next;

}

*data=top-data;

//此处,只是在同一个内存空间修改其值,所以不要取地址

top=cursor;

return

data;

}

}

C语言用指针作函数参数

选D

因为第一个参数是地址传递,fun(b,a);中传入a字符。*c=*c+1将c的值变为b字符。主函数的值改变。

第二个参数是值传递,所以在函数中d的值为B字符。但是并不影响主函数的值,所以主函数输出a的值是A。b的值是b。


分享文章:c语言函数指针传参数,c语言指针作为函数参数传递
新闻来源:http://myzitong.com/article/hsojgp.html