2 leonards 1998 Leonards_1998 于 2018.09.14 23:02 提问

两段代码只差一句 输出结果不一样

#include
int k=7,m=5;
void f(int s){
int *t = &k;
s = &t;
*s = &m;
printf("%d %d %d",k,*t,
s);
}
int main(){
int i=3,*p=&i,**r = &p;
f(r);
printf("\n");
printf("%d %d %d",i,*p,**r);
}
输出结果 755 333

第二段   #include <stdio.h>

int k=7,m=5;
void f(int s){
int *t = &k;
s = &t;
printf("%d %d %d",k,*t,
s);
}
int main(){
int i=3,*p=&i,**r = &p;
f(r);
printf("\n");
printf("%d %d %d",i,*p,**r);
}
运行结果 777 333

1个回答

caozhy
caozhy   Ds   Rxr 2018.09.14 23:34

任何时候,直接在函数里修改参数,都不会反应到调用着(实参)上。
要改变,必须按照代码1那样,透过参数指向的指针去修改。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
比较这两段代码输出的差异
package m;public class Animal { {System.out.println("Animal");}public Animal(){System.out.println("Animal Con");} public void move(){ System.out.println("动物可以移动"); } public String setValue(String a){
python-基础知识之while循环
一、while 语法 while 条件: # 循环体 # 如果条件为真,那么循环体则执行,执行完毕后再次循环,重新判断条件。。。 # 如果条件为假,那么循环体不执行,循环终止 示例: #打印0-10 count=0 while count <= 10: print('loop',count) count+=1 #打印0-10之间的偶数
打印结果和调试结果不一样(C语言)
【0】README0.1)本文旨在阐述 个人的debug经历,遇到的各种debug 奇葩问题, 说是奇葩,其实也是自己 不小心或者说是编程习惯不好;【1】debug和running的运行结果不一致(乍眼一看,你肯定醉了)1.1)原因:这是因为, 运行是时候,temp内部分配失败,为null, 所以直接返回了,所以swap失败;而在debug的时候, temp内存分配成功, 不为null, 所以swa
Leetcode 运行输出与本地结果不一样的解决方法(用例子说明)
Problem: Write an algorithm to determine if a number is “happy”. A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the sum of t
文本程序代码比较工具,找出两段代码不同之处
文本程序代码比较工具,找出两段代码不同之处
本地和oj同样数据测出来不同结果的原因
1.11在做codevs1014装箱问题的时候,由于我编程水平不够,发生了一件令当时的我匪夷所思的事。特此记录,防止今后在出现类似问题。 题目描述 Description: 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数)。要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。 输入描述 Input Descripti
cout和printf输出结果不一样
偶然发现cout和printf两种输出的结果竟然不一样,是一个非常简单的例子: #include using namespace std; int main() { double dval= 7; double* p1 = &dval; printf("*p1 = %d\n",*p1); cout << "*p1 = "<<*p1; system("pause"); return 0
js代码debugger模式下console.log结果和非debugger模式下不一样
我们来看一下下面一段简单代码的输出: var obj = {a:{b:2}}; console.log(&quot;before:&quot;,obj); var obj2 = obj; // 断点1 obj2.a.b = 0; console.log(&quot;after:&quot;,obj); 当我们不打断点的时候,输出结果为: before:{a:{b:0}} after:{a:{b:0}} 当我们在断点1处打上断点后...
SQL语句如何输出两次相同的数据但是字段不一样
运用的环境: 我这边在A是要输出两次仓库的信息,但是两个仓库是不一样的,所以这边A数据库就需要两个字段,两个仓库的id; pojo中就需要两个仓库的id和name,name是仓库B字段中的,只需要在sql语句中获取就好了,id对应name SELECT str.*, r.REPOSITORY_NAME AS REPOSITORY_NAME, t.REPOSITORY_NAME AS TA
实现两段文字模式匹配对比的JS算法
 div id="txt1" style="border:1px solid black">Hello123 World 123div>div id="txt2" style="border:1px solid black">Hello World 456div>div id="txt3" style="border:1px solid red">div>div id="txt4" sty