代码不同-输出结果不同

问题描述

输出结果不同


这两段代码看得很乱,它们的差别就在于s=&t;这条语句,有没有这条语句, 它们的输出是不同的,能解释下吗?

解决方案

一幅图说明问题

解决方案二:

两个程序都不会修改s,这个你只要加点输出就知道了

 #include <stdio.h>
int k = 7;
void f(int ** s)
{
    int * t = &k;
    s = &t;
    *s = &k;
    printf("%d,%d,%d,", k, *t, **s);
}
int main()
{
    int i = 3, *p = &i, **r = &p;
    printf("r before %d
", r);
    printf("%d,%d,%d
", i, *p, **r);
    f(r);
    printf("r after %d
", r);
    printf("%d,%d,%d
", i, *p, **r);
}

解决方案三:

 *p = &i, **r = &p; //改变**r会改变i,改变*r会改变p

    s = &t; //这里把s指向另一个指针,再修改s的内容就不会影响到实际参数r了。

解决方案四:

不明白在main中r怎么前后都没变,在f中明明有s=&t;的,改变了r的指向啊!

解决方案五:

awk 将结果输出到不同文件
Action输出不同视图的方法(根据结果跳转到不同页面)
根据用户的选择输出不同的结果--函数指针的使用

解决方案六:

为什么我输出的是这个结果?

解决方案七:

第一个改变了s的值,其已经指向了其他地方,,第二个则未改变

时间: 2024-12-03 02:53:21

代码不同-输出结果不同的相关文章

PHP解释器的代码高亮输出

一直喜欢ue9里面对php的默认色彩设置,橙色红色的,ue10改成关键字蓝色了,我又改回来了: 现在想试试php.exe的代码高亮输出与我的喜好一致,仔细调了一下php.ini,并尝试了一些新颜色: highlight.string  = #808080highlight.comment = #008000highlight.keyword = #FF8000highlight.bg      = #E0E0E0highlight.default = #800000highlight.html 

c++-为什么这段代码循环输出的数组少了第一个元素且多出了一个随机数?

问题描述 为什么这段代码循环输出的数组少了第一个元素且多出了一个随机数? 输入一些非负实数 用数组输出这些数 求平均数并输出(输入负数时报错并退出重新输入,输入回车时执行下一步操作) #include using namespace std; int main() { int i,j,k; double a[100],sum=0,avr; part1: cout<<"输入数字"< j=0,k=0; for (i=0;getchar()!='n';i++) { cin&

继承-这段代码的输出结果能不能给解释解释?

问题描述 这段代码的输出结果能不能给解释解释? public class A { public A() {init();} protected void init() {} static class B extends A{ int i,j=999; protected void init() { System.out.println("此时A的构造方法正在调用此方法:i的值为:"+i+",j的值为:"+j); i=888; j=111; } } public st

请问这段代码为什么输出null,求大神解答程序执行的顺序?

问题描述 请问这段代码为什么输出null,求大神解答程序执行的顺序? public class xieCheng { private String baseName="Base"; public xieCheng(){ this.callName(); } public void callName(){ System.out.println(baseName); } } public class Sub extends xieCheng { private String baseNam

编程-能帮我看看代码吗?我这代码怎么输出那么多个0?

问题描述 能帮我看看代码吗?我这代码怎么输出那么多个0? 输入一个字符串,内有数字和非数字字符,例如:a123x456 7689?89njnk32lnk123, 将其中连续的数字作为一个整数,依次存放到一维数组a中,例如123放在b[0],456放 在b[1]......统计共有多少个整数,并输出这些数.弟1行输出个数,第2行输出多个整数 ,用空格分隔. #include<stdio.h> #include<math.h> void main() { int i,j=0,k=0,x

这段代码为什么输出不了结果?实在是找不到错误

问题描述 这段代码为什么输出不了结果?实在是找不到错误 package com.xiaoyuanling; import java.util.ArrayList;import java.util.HashSet;import java.util.Scanner;import java.util.Set; public class Method { public Passenger[] passenger={new Passenger(""1 ""奥迪A4 "

c#-请问这段代码的输出结果,and why?

问题描述 请问这段代码的输出结果,and why? class Person { private int age; public int Age { get { return age; } set { age = value; } } } class Program { static void Main(string[] args) { Console.WriteLine(GetPerson().Age); Console.ReadKey(); } static Person GetPerson

求解决-这个代码为什么输出不对呢求大神指教

问题描述 这个代码为什么输出不对呢求大神指教 #include #include /** 本题要求计算给定的一系列正整数中奇数的和. 输入格式: 输入在一行中给出一系列正整数,其间以空格分隔.当读到零或负整数时,表示输入结束,该数字不要处理. 输出格式: 在一行中输出正整数序列中奇数的和. 输入样例:8 7 4 3 70 5 6 101 -1 输出样例:116int main(){ int a[80]; int ic = 0; int sum=0; for(i=0; ; i++) { scanf

编程-我这代码怎么输出个0.0?求大神解答

问题描述 我这代码怎么输出个0.0?求大神解答 #include #include #include static int stnum; char hint[80]="请按提示输入!"; struct Score { double yuwen,math,english,tiyu,sum; }; struct Student { char num[10],name[20],sex[10]; int age; struct Score score; }stu[5]; void prints

链接-看看下面这段代码会输出什么?

问题描述 看看下面这段代码会输出什么? 解决方案 VC环境下执行一下不就知道了么. 解决方案二: 请说出下面一段代码的输出结果