本篇文章给大家谈谈c语言指针传参,以及c语言指针传参的方法对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
1、请问在C语言中,函数传参时怎样利用指针传递数组2、C语言指针传参,目的是通过子函数交换实参地址,实现形参和实参的双向传递。但不能通过编译,求解。3、C语言 指针 传参
请问在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语言指针传参,目的是通过子函数交换实参地址,实现形参和实参的双向传递。但不能通过编译,求解。
看起来对函数调用和指针的概念有误解,形参和实参永远不能互相修改,因为在栈的不同位置存储。我们提出的双向传递是,通过把原来的当做实参变量的地址当做实参传入函数,在函数内部通过修改指针形参指向的地址来把值传递出函数;作为变量地址的实参依然不可能在函数内部被修改。
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语言指针传参的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言指针传参的方法、c语言指针传参的信息别忘了在本站进行查找喔。