C语言有参函数
答案:7 悬赏:60 手机版
解决时间 2021-12-04 05:51
- 提问者网友:了了无期
- 2021-12-03 07:30
C语言有参函数
最佳答案
- 五星知识达人网友:轮獄道
- 2021-12-03 08:10
如果是诸如函数声明int fun(int b[]),这个是传的地址,如果fun内部有赋值操作,那么会改变数组b的元素的值
如果是执行语句fun(b[i]);那么传的就是b[i]这个值,执行完fun后,b[i]的值不会变
a是一个指向指针的指针,a里面的内容是另一个指针p的地址,那么*a就是p的地址,**a就是*p。
同理,b的内容是另一个指针q的地址,*b就是q的地址,**b就是*q
t = *a, 那么t的内容就是p的地址,
*a = *b, a里面的内容变成了q的地址,即*a是q的地址,**a就是*q
*b = t, b里面的内容变成了p的地址,即*b是p的地址,**b就是*p
这三句,将**a的值和**b的值互换了,是对指针的操作。
传值方式:向函数传递参数时,先复制一份参数,然后才将复制品传给参数。函数中所有对参数的操作,就只是在使用复制品。不会改变传递前的参数本身。
传址方式:将地址传送给函数,函数对该地址的内容操作,相当于对实参本身的操作
如果是执行语句fun(b[i]);那么传的就是b[i]这个值,执行完fun后,b[i]的值不会变
a是一个指向指针的指针,a里面的内容是另一个指针p的地址,那么*a就是p的地址,**a就是*p。
同理,b的内容是另一个指针q的地址,*b就是q的地址,**b就是*q
t = *a, 那么t的内容就是p的地址,
*a = *b, a里面的内容变成了q的地址,即*a是q的地址,**a就是*q
*b = t, b里面的内容变成了p的地址,即*b是p的地址,**b就是*p
这三句,将**a的值和**b的值互换了,是对指针的操作。
传值方式:向函数传递参数时,先复制一份参数,然后才将复制品传给参数。函数中所有对参数的操作,就只是在使用复制品。不会改变传递前的参数本身。
传址方式:将地址传送给函数,函数对该地址的内容操作,相当于对实参本身的操作
全部回答
- 1楼网友:雪起风沙痕
- 2021-12-03 13:07
程序自定义了一个函数max(),函数的作用是将两数中的较大数输出,在主函数中调用子函数,子函数中?:的作用相当于if else
子函数也可表达成
{
int z;
if(x>y)
return x;
else
return y;
}
子函数也可表达成
{
int z;
if(x>y)
return x;
else
return y;
}
- 2楼网友:胯下狙击手
- 2021-12-03 12:04
#include
void main()
{
int max(int x,int y);主函数中定义
int a,b,c;
c=max(a,b);调用该函数
printf("c=%d",c);
}
int max(int x,int y)自定义求两者中较大值的函数
{
int z;
z=x>y?x:y;
return z;函数返回较大值
}
void main()
{
int max(int x,int y);主函数中定义
int a,b,c;
c=max(a,b);调用该函数
printf("c=%d",c);
}
int max(int x,int y)自定义求两者中较大值的函数
{
int z;
z=x>y?x:y;
return z;函数返回较大值
}
- 3楼网友:長槍戰八方
- 2021-12-03 11:16
二楼的讲的很详细了!程序上的一些问题,修改如下:
#include
void main()
{
int max(int x,int y);
int a,b,c;
printf(“please input two numbers:\n”);
scanf(“%d%d”,&a&b);
c=max(a,b);
printf("c=%d",c);
}
int max(int x,int y)
{
int z;
z=x>y?x:y;
return z;
}
#include
void main()
{
int max(int x,int y);
int a,b,c;
printf(“please input two numbers:\n”);
scanf(“%d%d”,&a&b);
c=max(a,b);
printf("c=%d",c);
}
int max(int x,int y)
{
int z;
z=x>y?x:y;
return z;
}
- 4楼网友:野味小生
- 2021-12-03 10:23
你这个程序有没什么大问题,就是不够简洁,如果用函数可以这样。
#include
void main()
{
int max(int x,int y);
int a,b;
printf("请输入ab:");
scanf("%d %d",&a,&b);
printf("大的是:%d\n",max(a,b));
}
int max(int x,int y)
{
return x>y?x:y;
}
不用的话:
#include
void main()
{
int a,b;
printf("请输入ab:");
scanf("%d %d",&a,&b);
printf("大的是:%d\n",a>b?a:b);
}
#include
void main()
{
int max(int x,int y);
int a,b;
printf("请输入ab:");
scanf("%d %d",&a,&b);
printf("大的是:%d\n",max(a,b));
}
int max(int x,int y)
{
return x>y?x:y;
}
不用的话:
#include
void main()
{
int a,b;
printf("请输入ab:");
scanf("%d %d",&a,&b);
printf("大的是:%d\n",a>b?a:b);
}
- 5楼网友:你哪知我潦倒为你
- 2021-12-03 09:27
你定义的max()函数是用来求两个数中的较大者,但你首先必须输入两个数,你所写的程序中,缺少了输入函数scanf();你在“c=max(a,b)”前加上语句“
printf("Input two numbers:\n");scanf("%d%d",&a,&b);”就可以了。
printf("Input two numbers:\n");scanf("%d%d",&a,&b);”就可以了。
- 6楼网友:有你哪都是故乡
- 2021-12-03 08:44
求两个整型数中的较大一个
#include
void main()
{
int max(int x,int y); max函数声明,声明了才能在下面用,输入参数为两个int,返回值是int型
int a,b,c; 定义三个变量,a,b用于存储要比较的两个数,c用于存储比较的结果,即较大者,但是这里应该用scanf(%d,&a);scanf(%d,&b);来得到a和b的值,要不,下面使用的是未初始化的a,b,会报错
c=max(a,b); 调用max函数,将结果付给c
printf("c=%d",c); 输入结果c
}
int max(int x,int y) max函数的实现部分
{
int z; 用于存储返回的结果
z=x>y?x:y; 问号表达式,如果x大于y,将x付给z,否则将y付给z
return z; 返回z的值,即为比较后的结果
}
#include
void main()
{
int max(int x,int y); max函数声明,声明了才能在下面用,输入参数为两个int,返回值是int型
int a,b,c; 定义三个变量,a,b用于存储要比较的两个数,c用于存储比较的结果,即较大者,但是这里应该用scanf(%d,&a);scanf(%d,&b);来得到a和b的值,要不,下面使用的是未初始化的a,b,会报错
c=max(a,b); 调用max函数,将结果付给c
printf("c=%d",c); 输入结果c
}
int max(int x,int y) max函数的实现部分
{
int z; 用于存储返回的结果
z=x>y?x:y; 问号表达式,如果x大于y,将x付给z,否则将y付给z
return z; 返回z的值,即为比较后的结果
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯