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

#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

0

1个回答

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

2
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
求助两段代码为什么输出结果不一样?
劳驾各位帮忙看看下面两段代码输出结果为什么不一样啊?rn代码一:rn[code=C/C++]#include "stdafx.h"rn#include rn#include rnusing namespace std;rnrnrnchar *getname();rnvoid main()rnrn char a[20];rn cin>>a;rn int i = 0;rn while(a[i] != 0)rn rn cout<rn#include rnusing namespace std;rnrnrnchar *getname();rnvoid main()rnrn char a[20];rn cin>>a;rn int i = 0;rn while(a[i] != 0)rn rn cout<
为什么这两段代码结果不一样?
int main() rn float a = 36893488147419103231;rn printf("%f", a);rn return 0;rnrn结果为18446744073709552000.000000rnint main() rn float a = 36893488147419103231.;rn printf("%f", a);rn return 0;rnrn结果为36893488147419103000.000000rnrn其中原理一直搞不明白,还请指点!
请问这两段代码输出的结果怎么不一样
请问这两段代码输出的结果怎么不一样。rn代码段1:rn ifstream input("C:\\111.raw");rn BYTE nTemp;rn for (int i=0;i<12;++i)rn rn for (int j=0;j<20;++j)rn rn input>>nTemp;rn TRACE("%u,",nTemp);rn rn TRACE("\n");rn rn代码段2:rn FILE *pFile=fopen("c:\\1111.raw","rb");rn BYTE nTemp;rn for (int i=0;i<12;++i)rn rn for (int j=0;j<20;++j)rn rn fread(&nTemp,1,1,pFile);rn TRACE("%u,",nTemp);rn rn TRACE("\n");rn rnrn fclose(pFile);rn
两段差不多的代码为什么结果不一样。
操作bmp图片的。rn(1)#define DELTA 250rn//#define TIMES_THRESH 7 //选3或者4rn//#define BINARY 170rnrndouble ReturnlpSrcValue(unsigned char *lpSrc, int binary)rnrn if (*lpSrccydib-(m-1)/2||j<(m-1)/2||j>cxdib-(m-1)/2)rn continue;rn lpSrc=(unsigned char*)lpDIBBits + lLineBytes*i + j;rn //计数器进行计数rn for(k=-(m-1)/2; k<=(m-1)/2-1; k++)rn rn lpSrc=(unsigned char*)lpDIBBits + lLineBytes*(i-(m-1)/2) + (j+k);rn lpSrc_temp=(unsigned char*)lpDIBBits + lLineBytes*(i-(m-1)/2) + (j+k+1);rn delta=ReturnlpSrcValue(lpSrc_temp, binary)-ReturnlpSrcValue(lpSrc, binary);rn if (fabs(delta)>DELTA)rn Times++;rn lpSrc=(unsigned char*)lpDIBBits + lLineBytes*(i+(m-1)/2) + (j+k);rn lpSrc=(unsigned char*)lpDIBBits + lLineBytes*(i+(m-1)/2) + (j+k+1);rn delta=ReturnlpSrcValue(lpSrc_temp, binary)-ReturnlpSrcValue(lpSrc, binary);rn if (fabs(delta)>DELTA)rn Times++;rn lpSrc=(unsigned char*)lpDIBBits + lLineBytes*(i+k) + (j-(m-1)/2);rn lpSrc_temp=(unsigned char*)lpDIBBits + lLineBytes*(i+k+1) + (j-(m-1)/2);rn delta=ReturnlpSrcValue(lpSrc_temp, binary)-ReturnlpSrcValue(lpSrc, binary);rn if (fabs(delta)>DELTA)rn Times++;rn lpSrc=(unsigned char*)lpDIBBits + lLineBytes*(i+k) + (j+(m-1)/2);rn lpSrc_temp=(unsigned char*)lpDIBBits + lLineBytes*(i+k+1) + (j+(m-1)/2);rn delta=ReturnlpSrcValue(lpSrc_temp, binary)-ReturnlpSrcValue(lpSrc, binary);rn if (fabs(delta)>DELTA)rn Times++;rn rn if(Times>=Times_thresh_down&&Times<=Times_thresh_up)rn rn position_img[num].x=j;rn position_img[num].y=i;rn num++;rn rn if(num==48888)rn rn AfxMessageBox("即将溢出!!");rn return;rn rn Times=0;rn rn //计时第一次结束
Mybaties中写SQL出现数据库和在代码中出现不一致的问题
最近项目在测试阶段,出现数据库中存储的数据和查询到页面的数据不一致。找了好久的BUG都没有找到原因,最后还是前端发现返回的数值和数据库中的数值类型不一致引起的发现同事之前在编写SQL中使用IF(ISNULL(),,)来进行判断,SQL查询的字段是否为空,进行输出SELECT stu.name AS studentName,stu.sex,stu.school,stu.graduate,IF(...
下面的两段代码为什么输出不一样??
有下面两段代码,为什么输出不一样?rn代码一rn[code=C/C++]#include rnrnusing namespace std;rnrnrnclass AArnpublic:rn AA(int _first, int _second = 1) : first(_first), second(_second)rn cout << "AA:: first = " << _first << " second = " << _second << endl;rn rnrn ~AA()rnrn AA(const AA & aa)rn first = aa.first;rn second = aa.second;rn cout << "AAAAAA" << endl;rn rnrn AA & operator=(const AA & aa)rn first = aa.first;rn second = aa.second;rn cout << "operator" << endl;rn rn int getFirst() constrn return first;rn rnrn int getSecond() constrn return second;rn rnrnprivate:rn int first;rn int second;rn;rnrnconst AA aaaa(const AA &a, const AA &b)rn return AA(a.getFirst() * b.getFirst(), a.getSecond() * b.getSecond());rnrnrnint main()rn AA aa(1, 2);rn AA temp = aaaa(2, aa);rn return 0;rn[/code]rnrn代码二rn[code=C/C++]#include rn#include rnrnusing namespace std;rnrnclass Arnpublic:rn A(string _name, char _sex, int _age) : name(_name), sex(_sex), age(_age)rn cout << "A::" << endl;rn rn ~A()rn cout << "~A::" << age << endl;rn rn rn A(const A& a)rn cout << "AAAA" << endl;rn name = a.name;rn sex = a.sex;rn age = a.age;rn rn rn A& operator=(const A &a)rn cout << "operator" << endl;rn rn rn void print()rn cout << name << endl;rn cout << sex << endl;rn cout << age << endl;rn rn rnprivate:rn string name;rn char sex;rn int age;rn;rnrnA getA()rn return A("wyp", 'm', 24);; rnrnrnint main()rn A a = getA();rn return 0;rn[/code]rnrn为什么代码一输出rn[code=C/C++]AA:: first = 1 second = 2rnAA:: first = 2 second = 1rnAA:: first = 2 second = 2[/code]rn而代码二输出rn[code=C/C++]A::rnAAAArn~A::24rn~A::24[/code]rnrn为什么代码一不在最后输出AAAAAA?(我是在VC++6.0里面编译运行的)
文本程序代码比较工具,找出两段代码不同之处
文本程序代码比较工具,找出两段代码不同之处
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
打印结果和调试结果不一样(C语言)
【0】README0.1)本文旨在阐述 个人的debug经历,遇到的各种debug 奇葩问题, 说是奇葩,其实也是自己 不小心或者说是编程习惯不好;【1】debug和running的运行结果不一致(乍眼一看,你肯定醉了)1.1)原因:这是因为, 运行是时候,temp内部分配失败,为null, 所以直接返回了,所以swap失败;而在debug的时候, temp内存分配成功, 不为null, 所以swa
以下两段代码输出结果为何不同?
以下两段代码输出结果为何不同?rn代码一:rn rn代码二:rn rn为何前一个name是数字而后一个却是字符?
ide 与 leetcode 运行结果不一样
在做 leetcode 的第 15 题, 3Sum 时发现,同样的代码在本地运行的结果是正确的,而在 leetcode 的服务器上结果却是错误的。而且检查了程序中,也并没有使用全局或者静态变量。 通过打印,仔细对比两种环境下的输出发现,原来是在代码有一条语句指针指向了数组外边的第一个地址。语句是内容是比较当前地址的值是否和后一个地址的值相同, 由于后一个地址实际上已经发生了溢出,在当前地址为...
同一段代码,不同C编译器,输出结果真的会不同啊!!!
一个奇怪的问题啊。 写了这么久代码,总认为,只要是C编译器,同一段代码总会有相同运行结果的(不考虑随机以及多线程的情况)。 但是,今天在百度知道上看到了一段代码,运行结果不同,本来打算直接说——小子,机器出问题了吧!!但是,抱着治学严谨的态度,我对本段代码进行了测试,发现结果出乎意料。。 先看这段代码吧。 #include void fun(); int main() { fun()
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
同样的代码和数据文件,为什么在eclipse中运行和在控制台运行的结果不一样?...
今天遇到一个很诡异的问题,同一样的代码和同一个数据文件,在eclipse或者其它ide中能正常运行,为什么在控制台确不能正确的运行?   代码很简单,就是从一个数据文件中读取一定的行数,然后处理这些行 代码如下     public static void main(String[] args) throws Exception { final String SEPERATOR ...
实现两段文字模式匹配对比的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
不同编译器结果不一样
#include &amp;lt;stdio.h&amp;gt; #include &amp;lt;stdlib.h&amp;gt; int canPlaceFlowers(int* A, int size, int n) { int i,sum=0,j,t; for(i=0;i&amp;lt;size;i++) { if((A[i]==0)&amp;amp;&amp;amp;(A[i+1]==0)) ...
文字爬取print只输出最后一句
换行符的问题,replace()替换掉即可。
输出结果不一样
public class A rn int y,m,d;rn public A(int y,int m,int d)rn this.y=y;rn this.m=m;rn this.d=d;rn rn rn public String da=y+"."+m+"."+d;rn public String getDate()rn return(y+"年"+m+"月"+d+"日");rn rn public static void main(String[] args)rn A dat=new A(2007,4,8);rn System.out.println("date="+dat.da); rn System.out.println("date="+dat.getDate()); rn rnrnrn//dat.da 和dat.getDate(),为什么得出的结果不一样呢。
为什么输出结果不一样????
[code=C/C++]#include rn#include rn#include rnusing namespace std;rnint fun(double a,double b,double d)rnrn double dis=fabs(a-b);rn if (dis>d)rn rn if ((dis>180 && 360-dis>d) || dis<180)rn return 1;rn elsern return 0;rn rn return 0;rnrnint main()rnrn double hour1=0.00333333;rn double hour,minute,second,D;rn int cnt,i,j,t;rn const int total_second=24*60*60;rn while(cin>>D && D!=-1) //输入0;rn rn cnt=0;rn hour=minute=second=0;rn for (t=0;t<24;t++)rn rn for (i=0;i<60;i++)rn rn for (j=0;j<60;j++)rn rn second++;rn minute+=1.0/60;rn hour+=1.0/3600;rn if (second>=60)rn second=0;rn if (minute>=60)rn minute=0;rn if (hour>=12)rn hour=0;rn if (fun(30*hour,6*second,D) && fun(30*hour,6*minute,D) && fun(6*second,6*minute,D))rn cnt++;rn elsern rn cout<<"h="<
同样的Python代码在PyCharm和Pydev里面的运行结果不一致
PyCharm和Pydev下运行相同Python代码的不同不结果,并分析原因。
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处打上断点后...
Android坦克大战源代码
非常的棒,代码齐全,只差你来运行,非常的棒,代码齐全,只差你来运行
如果调试运行和直接Ctrl + F5运行结果不一样可以考虑这种情况
最近在工作中发现一个新的问题,就是调试运行和直接Ctrl + F5运行结果不一样,后来经过调试才发现可能是VS编译器的一个BUG?                   原因:                   某些变量未初始化,我亲测过,成员变量int在未初始化的情况下Ctrl + F5运行会默认初始化为0,但是在调试的时候却是一个随机值,这就导致了调试运行和直接Ctrl + F5运行
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
为什么调试时的输出与控制台运行的输出结果会不一样?
以上一篇文章[url=&quot;http://lynnwoo.iteye.com/admin/blogs/718928&quot;]Spring AOP入门及其实例讲解、下载[/url]中Man与FBI为例,运行AOPTest结果出现这样的情况: 时而 [img]http://dl.iteye.com/upload/attachment/281516/5f7bb888-8965-3fb0-882b-737e...
命令在程序脚本中调用与串口执行结果不一致?
这两天碰到一个bug,调试了好久,这里做一下记录,以免以后再掉入这个坑。bug描述  在/usr/bin/目录下,有命令wpa_cli,(这是hostapd中的命令。用来配置无线网络的)。我测试路由器WPS功能时,如果Extender(我测试的板子)通过WPS连接上RootAP时,Extender会调用一个action_file:lib/wifi/wps-supplicant-update-uci。
同一SQL语句在PLSQL Developer与SQL * PLUS工具中执行结果不一致
同一SQL语句在PLSQL Developer与SQL * PLUS工具中执行结果不一致 背景 今天遇到如下问题,同一sql语句在PLSQL Developer与SQL*PLUS工具中执行结果不一致, sql语句如下 SELECT 'GROUPHEALTH_SEND_EMAIL' as interface, SUM(decode(se.status, 1, 0, 1)) AS co...
不同的类中调用相同的方法程序运行结果不同
编码问题
为什么下面的两段代码结果会不一样呢?
select b.query_id, B.QUERY_NOrn from (select '22214266' tel_norn from dualrn union allrn select '22214266' tel_no from dual) A,rn (select '152' query_id, '(020)22214266' query_no, 'U' query_typern from dualrn union allrn select '153' query_id, '(020)22214266' query_no, 'U' query_typern from dual) Brn where B.QUERY_TYPE = 'U'rn and SUBSTR(B.QUERY_NO, INSTR(B.QUERY_NO, ')') + 1) = A.TEL_NO(+)rn and b.query_no = '(020)22214266';rnrnselect b.query_id, B.QUERY_NOrn from (select '22214266' tel_norn from dualrn union allrn select '22214266' tel_no from dual) A,rn (select '152' query_id, '(020)22214266' query_no, 'U' query_typern from dualrn union allrn select '153' query_id, '(020)22214266' query_no, 'U' query_typern from dual) Brn where B.QUERY_TYPE = 'U'rn and b.query_no = A.TEL_NO(+)rn and b.query_no = '(020)22214266';
下面有两段代码为什么执行结果不一样,帮解释,谢谢
rn[color=#FF6600]和下面的代码执行结果不同,请分析下[/color] [color=#0000FF]conn=mysql_connect($this->serverName,$this->userName,$this->userPwd);rn //选择数据库rn $this->my_db=mysql_select_db($this->dbName,$this->conn);rn if($this->my_db)rn echo"数据库连接成功";rn rn?>[/color]
oracle 存储过程 输出结果和正常查询不一样
我的项目是一个学校的教务系统的项目,有很多人参与过,因此有很多前人的坑 今天存储过程里就一条查询语句,带一个返回值,输出的结果始终和单条查询语句正常查询的结果不一样 存储过程: CREATE OR REPLACE PROCEDURE PROC( result in out number,    Sin varchar2,    Gin number   )   as    begi
这两段代码在VC和DEV C++上结果不一样
rnDEV上的结果我可以理解,但是VC是怎么做的?高手可以给一个能表达出rncout << (*p)++ << ' ' << *(p++) << endl;rn的式子么?rnrn[code=C/C++]rnrn#includernrnint main()rnrn int a[] = 2,4,6,8,10;rn int *p = a;rn int i;rn rn cout << (*p)++ << ' ' << *(p++) << endl;rn for(i = 0;i < 5;i++)rn rn cout << a[i] << ' ';rn rn getchar();rn return 0;rnrnrnrnrn[/code]
Form2访问form1的控件,两段差不多的代码,结果不一样呢
rn在form2的button事件中:rnrn Button con = (((this.Owner) as Form1).Controls["button6"]) as Button;rn string str = (sender as Form).Text.Substring(0, 2);rn con.Text = str;rnrnrn ComboBox con = (((this.Owner) as Form1).Controls["comboBox1"]) as ComboBox;rn string str = (sender as Form).Text.Substring(0, 2);rn con.Text = str;rnrn两段看似差不多的代码,为什么下面那个combobox会报错,:未将对象引用设置到对象的实例rn而上面的不报错?
不明白这两段代码,为什么结果不一样呢?
Code1:rn#include rnclass trrn int i ;rnpublic:rn tr(int n)rn rn i=n;rn rn void set_i(int n)rn i=n;rn int get_i()rn return i;rnrn;rnvoid sqr_it(tr *ob)rnrn ob->set_i(ob->get_i()*ob->get_i());rn cout<<"copy of obj has i value of:"<get_i();rn cout<<"\n";rnrnmain()rnrn tr obj(10);rn sqr_it(&obj);rn cout<<"but,obj.i is changed in main:";rn cout<rnclass trrn int i ;rnpublic:rn tr(int n)rn rn i=n;rn rn void set_i(int n)rn i=n;rn int get_i()rn return i;rnrn;rnvoid sqr_it(tr ob)rnrn ob.set_i(ob.get_i()*ob.get_i());rn cout<<"copy of obj has i value of:"<
Pytorch evaluation每次运行结果不同
这两天跑测试图时,发现用同样的model,同样的测试图,每次运行结果不同; 经过漫长的debug发现,在net architure中有dropout,如下(4):       (conv_block): Sequential(         (0): ReflectionPad2d((1, 1, 1, 1))         (1): Conv2d(256, 256, kernel_size...
两段程序不一样,为什么输出一样?
程序一rn[code=C/C++]rn#includern#includern#includernvoid test( int a[ ],...)rnrn va_list var_arg;rn a++; //这是程序一多一句话rn va_start( var_arg, a );rn printf("%d\n",va_arg( var_arg, int ));rn va_end( var_arg );rnrnint main( void )rnrn int a[ 3 ] = 1, 2, 3 ;rn int b = 4;rn test( a, b );rn getchar( );rnrn[/code]rnrn程序二rn[code=C/C++]rn#includern#includern#includernvoid test( int a[ ],...)rnrn va_list var_arg;rn va_start( var_arg, a );rn printf("%d\n",va_arg( var_arg, int ));rn va_end( var_arg );rnrnint main( void )rnrn int a[ 3 ] = 1, 2, 3 ;rn int b = 4;rn test( a, b );rn getchar( );rnrn[/code]rnrn输出都是4,why?
我是ACMer
Input 本题为多实例测试,首先输入一个整数 n<1000,然后输入n个正整数num(num<1000000)。 Output 输出num对10求余结果次数遍”I am a good ACMer”,每一句输出占一行。每一组输出之间有一个空行Sample Input 3 1 63 2017 Sample Output I am a good ACMerI am a good ACM
本地和oj同样数据测出来不同结果的原因
1.11在做codevs1014装箱问题的时候,由于我编程水平不够,发生了一件令当时的我匪夷所思的事。特此记录,防止今后在出现类似问题。 题目描述 Description: 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数)。要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。 输入描述 Input Descripti
并发进程的不同输出结果
深入理解计算系统,499页有这么一个例题。这个例题的输出会产生多少行?可能顺序是什么?  1 #include   2 #include   3 #include   4 #include   5   6 int main(){   7   int status;   8   pid_t pid;   9   printf("hello\n");  10   pid=f
【python列表赋值】这两段代码为什么输出不一样
[code=python]val = [['a']*3]*3rnval[0][0]='b'rnprint valrnrntmp = [['c','c','c'],['c','c','c'],['c','c','c']]rntmp[0][0]='a'rnprint tmp[/code]rnrn输出结果:rn[code=python][['b', 'a', 'a'], ['b', 'a', 'a'], ['b', 'a', 'a']]rn[['a', 'c', 'c'], ['c', 'c', 'c'], ['c', 'c', 'c']][/code]
文章热词 调参xgboost结果 tensorboard查看结果 逻辑回归阈值结果影响 Tensorboard参数结果的影响 推荐系统项目实例及代码
相关热词 c++代码运行时间不一样 c++输出结果到txt c#单元测试的输出结果 区块链平台价格不一样 python输出