指针变量 参数函数 值传递 “不能通过调用函数来改变实参指针变量的值,但可以改变实参指针所指变量的值”谭浩强的10.3 和10.4前面那个题 关于交换大小的调用函数是下面的{p=p1;p1=p2;p2=p;}

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/25 12:41:33
指针变量 参数函数 值传递 “不能通过调用函数来改变实参指针变量的值,但可以改变实参指针所指变量的值”谭浩强的10.3 和10.4前面那个题 关于交换大小的调用函数是下面的{p=p1;p1=p2;p2=p;}
xUN@PA#`V7lUT!B %( )ȿ{/\c R7]{s"rWӐ/|b>`y{5WfY'qͲM9DxHV' t-݇+/! X6ڬ:cqM G(,gꮻGn)sfMdwvu qZqc$jčpǍ|L|?U@E+<ǵP p%QYƃ!<Ûvw$X;)L!r[&o1h5'q19f0/ H[|j@;5(.1I]4cRvS/ 36KBuC?޴S1(0s2DNƂDoC[BUyKU o72yaQ}}520N3^LM 2U`pxxX}Qە4GjChL8Am qH6fN[NXY Fp_utPEPB旷˸1H^bd)]p]+XJUS&aD^:EVRVNd`dgIS=}46dOtCc/*_|M2#ej[dfcfr(Pj9wwGFNwXHI."HIKGDp(bd?eQ6uKb%-̄Ϙ.8H8"ixj%o)JocgH r Y}Sfg#tr-or 'XTUSK^oeH ]$_T_pU,;kgX8=pbC #

指针变量 参数函数 值传递 “不能通过调用函数来改变实参指针变量的值,但可以改变实参指针所指变量的值”谭浩强的10.3 和10.4前面那个题 关于交换大小的调用函数是下面的{p=p1;p1=p2;p2=p;}
指针变量 参数函数 值传递
“不能通过调用函数来改变实参指针变量的值,但可以改变实参指针所指变量的值”
谭浩强的10.3 和10.4前面那个题 关于交换大小的
调用函数是下面的
{p=p1;p1=p2;p2=p;} 还有{p=*p1;*p1=*p2;*p2=p;}这两种情况搞不清楚,
为什么用指针变量作为函数参数就可以?
不用指针变量,实参 值传递 的方式单向传到 形参,那么只改变调用函数里的值,没有回传到实参来,
那么,用了指针变量,值是怎么到实参来的?

指针变量 参数函数 值传递 “不能通过调用函数来改变实参指针变量的值,但可以改变实参指针所指变量的值”谭浩强的10.3 和10.4前面那个题 关于交换大小的调用函数是下面的{p=p1;p1=p2;p2=p;}
注意传递地址和传递变量的区别:
比如
void swap(int x,int y)
{
//...
}
...
int a=3,b=4;
swap(a,b);
此处将变量a的值3传递给x,b的值4传递给y,此后再swap函数中便与ab无关了,xy再怎么改变,ab都不会变的
其实传地址的道理是一样的,不过要区别的是:地址没变,地址里面的内容变了
比如
void swap(int *p1,int *p2)
{
*p1=5;*p2=6;
}
...
int a=3,b=4;
int *pa=&a,*pb=&b;
swap(pa,pb);
注意此处将ab的地址传递给了形参p1,p2,而在swap中是通过地址改变了参数的值,我们假定变量a在内存中的地址是2000,变量b在内存中的地址是3000,将2000和3000分别传递给p1,p2,然后*p1=5;通过p1指针内的地址改变了里面的值,也就是将内存地址2000里面的内容改为5,又将内存3000里面的内容改为了6,然后返回主函数后,这时pa,pb的指向并没有改变,pa仍指向a,pb仍指向b,但是ab里面的内容则发生了改变
这边再仔细推敲一下吧,

指针变量 参数函数 值传递 “不能通过调用函数来改变实参指针变量的值,但可以改变实参指针所指变量的值”谭浩强的10.3 和10.4前面那个题 关于交换大小的调用函数是下面的{p=p1;p1=p2;p2=p;} 函数参数的副本和临时变量有什么区别?为什么说以值传递方式传递给函数参数会产生临时变量,而用指针方式传递参数不会产生临时变量?这两种方式都在函数的栈中产生了副本,而临时变量是 函数的参数传递有三种方式,1)按值传递,2)以指针方式传递,3)以引用方式传递.编写一个函数交换两个变量的值为例,验证是否能实现交换,比较这三种方式的不同 函数的形式参数可以是什么变量有指针变量、数组、表达式、符号常量、整型变量 为什么要把指向指针的指针作为函数的参数传递? 编写程序,通过指针变量作为函数参数调用的方法,求任意三个数字之和与三个数之乘 利用function函数求正三角形的周长,通过参数传递 编写用指针变量作为函数参数求数组的最小值、最大值和平均值的函数 编写函数有10个数围成一圈,求出相邻三个数之和的最小值并返回最小值的起始数组元素的下标(用指针变量做函数参数传递最小的值,函数原型为int min(int *a,int n,int *minval)).#includeint min(int *a,int 不能实现函数之间数据传递的是A. 全局变量 B. 局部变量 C. 函数接口 D. 函数返回值 定义一个动态数组,长度为变量n,用随机数给数组各元素赋值,然后对数组各单元排序,定义swap函数交换数据单元,要求参数使用指针传递. 编写函数,分别利用指针传递参数,实现两个字符串变量值的交换 为什么C语言函数中可以返回局部变量而不能返回局部变量的指针? C语言题目:编写函数,交换两变量的值.说明1.说明交换函数swap( ),它是无值类型的,它有两个参数且都是指针型的.2.使用临时变量,交换两形参变量的值 函数参数传递什么意思 若希望通过参数将函数值带出函数体,则参数必须定义为指针类型1.错2.对 一般分为传值,和传址,这个我是知道的.另外的引用传递底层是用指针实现的,我只记得好像是,请问,如果问有哪三种函数参数传递方式,是哪三种 “指针变量作为函数参数的作用:将一个变量的地址传送到另一个函数中”这句话怎么理解?