c语言引用做函数参数 c语言函数调用参数

c语言 引用变量为什么不能作为函数参数

C语言中主函数中定义的变量只能在主函数中使用,所以你还得再定义一个变量。 当然,捏可以把主函数中定义的这个变量传递给被调用的函数作为参数。 例如 void fun(int x) { } main() { int num=9; fun(9); } 但是如果你要在被调用函数中使用

创新互联建站主要从事成都做网站、成都网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务福田,十多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220

C++指针、数组、引用、变量作函数参数的问题

1, 变量作为参数,这是单向值传递。即将数据传给被调函数后,与调用函数就不相关了,必须通过函数值返回操作结果。

如有函数声明:void swap(int a,int b); //功能是交换a,b值,但事实上对调用函数没有影响,因为swap函数的局部变量a,b在该函数执行完释放掉了,其值也就丢失了。

2. 指针、数组作为参数,这是地址传递,指针和数组可以看成是指向一个或一片连续空间的指针(区别是:一个为变量地址,一个常量地址),它们传递的是所指数据或数据区的地址,这使得函数直接操作的就是原数据区的数据。好处是可以直接通过函数改变调用函数中的多个数据。

如有函数声明:void swap(int *a,int *b); 传递是指向所指空间的地址,执行后,直接交换了调用函数中的数据;

再如: void max(int a[],n),求数组a中的最大值。也是传递数组的地址,操作的是调用函数的数组元素。

3.引用作为参数,引用就是别名,其实也是地址传递,但它是常量地址

C语言到底支不支持引用传递做函数参数?

“引用传递做函数参数”是C++的特性,C语言不支持。

// C语言要这样写:

void Exchg3(Rect *x, Rect *y){ /* ... */ }

// 然后传递指针:

Exchg3(a, b);

C语言指针变量的赋值和做函数的参数

1、指针变量的赋值,分为定义时赋值(初始化)和单独赋值,如:

int x ;

int * px=x ; //定义时赋值,也称初始化,注意这里的*是跟随int的,即变量px是int *类型变量! 实际上的赋值语句是px=x ;

int * py ;

py=x ; //单独赋值,将py指向x

*py=10 ; //这里的*,是引用指针中的数据操作符,*跟随的变量必须是指针类型变量,否则会出错! *py就是x,这里相当于x=10;

2、指针变量作为函数的参数时,子函数可以通过指针引用实参地址中的数据,达到修改实参地址中的数据。如:

#include stdio.h

void func( int a, int b, int *pmax )

{

if ( ab ) *pmax=a;

else *pmax=b ;

}

void main()

{

int a=2,b=3,max=0;

func(a,b,max ); //这里将变量max的地址传递到子函数,子函数中通过该地址,可以修改max的值,达到子函数结束后,max能带回运算结果的效果。

printf("max=%d\n", max );

}

C语言 带参数函数的引用调用

#include stdio.h

void fun(int * a,int k);

void main()

{

int a[10];

printf("请输入10个整数:\n");

for(int i=0;i10;i++)

{

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

}

fun(a,sizeof(a)/sizeof(a[0]));

}

void fun(int a[],int k)//这就是你想要的函数

{

int g0=0,t0=0,e0=0;/*g0就是0,t0就是小于0,e0就等0*/

for(int i=0;ik;i++)

{

if(a[i]0) g0++;

if(a[i]==0) e0++;

if(a[i]0) t0++;

}

printf("大于0的个数为:%d\n",g0);

printf("小于0的个数为:%d\n",t0);

printf("等于0的个数为:%d\n",e0);

}

/*

说明就和ichenq的差不多,只是ichenq的那个有问题,比如他的if语句里多了几个";"号,导致无没通过,另外我用他的函数来测试得不到想要的结果

sizeof(a)/sizeof(a[0])就是数组a的长度*/

【C语言】函数作为函数参数

Question:在函数void function()中,需要将另外一个函数double input()的函数名作为参数。

typedef double (*P)(int);

Note:参数部分需要注意,函数input()所有的输入参数类型都需要包含在内。

例如 double input(double u[5], int num, double x), 则在定义时写作 typedef double (*P)(double*,int,double)。

此时,函数作为一种类型,可以直接被其他函数调用。

函数声明中定义 void function(P input),调用function(input)即可。

也可以写成


新闻标题:c语言引用做函数参数 c语言函数调用参数
本文来源:http://scyanting.com/article/hjdphd.html