1、值传递,创建变量x和y,x的值等于a的值,y的值等于b的值
void Exchg1(int x, int y)
{
int tmp
tmp=x
x=y
y=tmp
printf(“x=%d,y=%d/n”,x,y)
}
void main()
{
int a=4,b=6
Exchg1 (a,b)
printf(“a=%d,b=%d/n”,a,b)
}
2、地址传递,相当于建立了px和py两个指向整型的指针,其值分别为a和b的地址
Exchg2(int *px, int *py)
{
int tmp=*px
*px=*py
*py=tmp
print(“*px=%d,*py=%d/n”,*px,*py)
}
main()
{
int a=4
int b=6
Exchg2(&a,&b)
Print(“a=%d,b=%d/n”, a, b)
}
3、引用传递,x和y直接引用a和b,对a和b *** 作,相当于给a、b起了别名x、y
Exchg2(int &x, int &y)
{
int tmp=x
x=y
y=tmp
print(“x=%d,y=%d/n”,x,y)
}
main()
{
int a=4
int b=6
Exchg2(a,b)
Print(“a=%d,b=%d/n”, a, b)
}
扩展资料:printf用法:
printf()函数的调用格式为:printf("&lt格式化字符串&gt",&lt参量表&gt)。
其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。
参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对应,否则将会出现意想不到的错误。
比如:
int a=1234;
printf("a=%d\n",a)
输出结果为a=1234。
#include "stdio.h"float MaxMark(float *p)
{
float max
int i
max=p[0]
for(i=1i<5i++)
{
if (p[i]>max)
max=p[i]
}
return max
}
void main()
{
float max
float marks[3][5]/*定义一个5行3列的数组,记录学生成绩*/
float *p/*定义一个数组的指针*/
int i,j
for(i=0i<5i++)
{
printf("请输入第%d的学生成绩:\n",i+1)
for(j=0j<3j++)
scanf("%f",&marks[j][i])/*每输入一个学生数据,按一下回车,也可根据实际需要改写*/
}
for(i=0i<5i++)
printf("第%d个学生的成绩:%0.2f %0.2f %0.2f\n",i+1,marks[0][i],marks[1][i],marks[2][i])
printf("\n\n")
for(i=0i<3i++)
{
p=marks[i]
max=MaxMark(p)
printf("第%d门成绩的最大值为:%0.2f\n",i+1,max)
}
}
有的符号可能在粘贴时错误,自行改正
呵呵!楼主的程序的写法让人看了蛋疼,先帮你美化美化!#include <stdio.h>
long f1(int p)
{
int k
long r
long f2(int)
k=p*p
r=f2(k)
return r
}
long f2(int q)
{
long c=1
int i
for(i=1i<=qi++)
c=c*i
return c
}
main()
{
int i
long s=0
for (i=2i<=3i++)
s=s+f1(i)
printf("\ns=%ld\n",s)
}
看一个代码肯定是从main函数看起的。首先main调用了f1,然后f1又调用了f2;
观察f2发现,其实f2(q)就是用来求q的阶乘q!的!所以可进一步观察出f1(p)是用来求(p*p)的阶乘的!
返回到main函数,所以s=4!+9!;
呐,这就是调用函数的过程。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)