C语言地址传递和值传递的问题
发布网友
发布时间:2022-08-17 01:14
我来回答
共5个回答
热心网友
时间:2023-10-09 12:16
我把自己的理解给你,可能和书上写的不一样,不过绝对是正确的
地址传递和值传递不能简单理解为传递的是地址还是值,而是函数结束后对实际参数是否有影响,比如将实参的地址传递给形参,那么只有形参使用*p的形式才能调用实参,否则都是形参之间的运算,和实参没有半点关系。举个例子
int a,b,*p,*q,*s;
p=&a;
q=&b;
s=a;
a=b;
b=c;
p ,q的值不变,s,a,b只是进行了值传递,只不过没有放到函数里追问我这么理解对不对: 对那个值传递 p是x的地址 q是y的地址 然后传到fun里; 交换后 p是y的地址 q是x的地址; 但结果是让输出的x y 当然p q 怎么变对xy没影响; 对地址传递: p q 传到fun里, 由于p是x的地址 *p就是x了 自然*p和*q交换就是x y 交换了 这么想对吗
追答恩,就是这个意思,抱歉这么晚才回
热心网友
时间:2023-10-09 12:17
值传递,你懂得。
址传递是把地址传给被调用函数的指针变量,(注意:数组名是指针常量,但是,指针与数组名做形参是指针变量。)使用指针变量可以找到这个地址的内容。这就是址传递。
热心网友
时间:2023-10-09 12:17
地址传递就是传递的值所在的地址进行的传递,调用时通过地址读取所用值,建议看一下指针这一章
热心网友
时间:2023-10-09 12:18
值传递就相当于函数复制了一个你主函数里面的参数,不会改变你原来的参数,而地址传递,是改变该地址的数,当你在输出这个地址的数时,值会改变。
热心网友
时间:2023-10-09 12:19
http://zhidao.baidu.com/question/243258676.html?oldq=1 一样的问题