
正文
c语言指针向函数传参 c语言指针函数调用例子
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
c语言向函数传递函数作为参数
#include stdio.h
//---子函数声明---//
int func1();
int func2(int (*func1)()); //形参为函数指针(即指向函数c语言指针向函数传参的指针)
//---主函数---//
int main(){
printf("向函数二传递函数一c语言指针向函数传参,\n即函数一作为函数二的参数。\n");
printf("%d ",func1());
printf("%d\n",func2(func1));//注意函数名即为函数地址c语言指针向函数传参!!!!!!
} //实参为函数名func1或者func1c语言指针向函数传参,两者等价c语言指针向函数传参,而非func1()
//---子函数定义---//
int func1(){
return 1;
}
int func2(int (*func1)()){ //形参为函数指针(即指向函数的指针)
return func1()+1;
}
相关问答
Q1: C语言 指针 传参
问题在你这个函数的定义参数void find(float a[],float *pmax,float *pmin)
你在函数内对后2个参数直接进行了赋值。
{pmax=a[t];}
if(a[t]*pmin)
{pmin=a[t];}
你在函数内赋值并不会被外部的参数造成影响,你需要把用指针的引用才行
float* pMax, float* pmin
这样在函数内的赋值才有效果
Q2: c语言 指针传参
这里c语言指针向函数传参的friends[]是什么意思c语言指针向函数传参?
是friends[0]么?
这里的friends[]是表示函数的形参是一个数组,在调用该函数时,传递的实参必须是一个数组名(比如,有int a[10]; 在传递的时候就传a),或者是数组首元素的地址(a[0])。
void add(struct friends_list friends[]);
这个函数传递的是friends[]数组中的哪个元素c语言指针向函数传参?
不是传递的数组哪个元素,而是传递的数组首地址,friends[]相当于*friends。然后可以根据指针地址的加减操作,访问其c语言指针向函数传参他元素的地址,以及地址对应的值。
请参考你前一个问题的回答。
Q3: 请问在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 */
}
两种方式完全等价,但是前面一种能够更清晰地看出:这个参数是指向某个元素起始地址的指针,而后面的这种方式则不能够直观地看出这种含义。
Q4: c语言中指针传参
因为数组c语言指针向函数传参的每一个元素在内存中是连续存放的c语言指针向函数传参,只要传递数据的首地址,c语言指针向函数传参你就可以根据对指针的"++"或--"操作,或直接在首地址上加上某个数,来得到数据其他的元素地址,然后用"*"操作符可以访问对应地址存放的数值。
比如,有如下这样语句:
int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 定义数组a
int *p = a; // 使指针p指向数据的首地址,类似给函数传递首地址
1、使用"++"操作符,p目前指向的是数组首地址,那么p++之后,p就应该指向存放数组第二个元素的地址,这样就可以用*p得到第二个元素的值(2)。依此类推。
2、可以直接对首地址加某一个数,比如p+4,因为p指向数组首地址,所以p+4就是指向存放数据第五个元素的地址。这样就可以用*(p+4)得到第五个元素的值(5)。其实这里的*(p+4)与p[4]效果是一样的,只是写法上的不同而已,但是p[4]更直观一些,所以大部分编程人员都愿意用p[4]这种形式,因为它看其来像个数组,更好理解一些。
总而言之,用数组首地址可以访问数组的所有元素,就是因为可以通过对首地址的相加减来得到其他元素的地址,从而可以得到数组的每一个元素值。
这样说,c语言指针向函数传参你明白c语言指针向函数传参了吧。
如果还不太明白,那就看看谭浩强的《C语言程序设计》的“数组与指针”篇,那里写的很详细的(P210)
关于c语言指针向函数传参和c语言指针函数调用例子的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






