十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
1、值传递,创建变量x和y,x的值等于a的值,y的值等于b的值
10余年的吉安网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都营销网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整吉安建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“吉安网站设计”,“吉安网站推广”以来,每个客户项目都认真落实执行。
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。
实参必须要指明数据类型,而且实参和形参的数据类型必须一致。
主要原因,因为数据类型反应了数据的意义,譬如,0x3f8ccccd这个十六进制数,用int类型来描述它,它就是一个整数,用float类型来描述它则为1.1。示例代码如下。
#include stdio.h
int main()
{
int i = 0x3f8ccccd;
float f = *(float *)i;
printf("%d\t%f\n", i, f);
return 0;
}
事实上C语言中的数据类型,类似于平时说话的”语境“, 它表达了语言的意义,譬如:”谢谢你“和”谢谢你全家“, 谢谢是一个符号,但是不同的语境下有不同的意义。正是因为此,C语言不管是函数参数传递还是使用标识符进行运算,都必须指明其数据类型。
形参是一个变量,是在引用的函数中的变量
实参也是一个变量.是在主函数中的变量.
两个变量的使用范围不同.
形参只在子函数中使用,实参可以在主函数中使用.
上面,实参写成100,是说,在形参用100代进去.
而形参只能是一个变量,用来吸收实参传递进来的值,以输出结果.
从别人那复制来的,写的挺详细的,希望比你有帮助,不明白的可以M我
——————————————————————————
形式参数和实际参数
函数的参数分为形参和实参两种。在本小节中,进一步介绍形参、实参的特点和两者的关系。形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用。形参和实参的功能是作数据传送。发生函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。
函数的形参和实参具有以下特点:
1. 形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只有在函数内部有效。函数调用结束返回主调函数后则不能再使用该形参变量。
2. 实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使实参获得确定值。
3. 实参和形参在数量上,类型上,顺序上应严格一致,否则会发生类型不匹配”的错误。
4. 函数调用中发生的数据传送是单向的。即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。 因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。
【例】可以说明这个问题。
main()
{
int n;
printf("input number\n");
scanf("%d",n);
s(n);
printf("n=%d\n",n);
}
int s(int n)
{
int i;
for(i=n-1;i=1;i--)
n=n+i;
printf("n=%d\n",n);
}
本程序中定义了一个函数s,该函数的功能是求∑ni的值。在主函数中输入n值,并作为实参,在调用时传送给s 函数的形参量n( 注意,本例的形参变量和实参变量的标识符都为n,但这是两个不同的量,各自的作用域不同)。在主函数中用printf 语句输出一次n值,这个n值是实参n的值。在函数s中也用printf 语句输出了一次n值,这个n值是形参最后取得的n值0。从运行情况看,输入n值为100。即实参n的值为100。把此值传给函数s时,形参n的初值也为100,在执行函数过程中,形参n的值变为5050。返回主函数之后,输出实参n的值仍为100。可见实参的值不随形参的变化而变化。
fun1(w);//fun1(char *w);
实际参数 w 本身就已经声明了为char *类型,在实际的函数调用时,从语法上不允许用fun1(char *w); 只能直接把实际的量 w 作为参数,提供给函数,调用函数:fun1(w);