下列程序的运行结果是 #include <stdio.h> void main() { int x = 10, y = 20, z = 30;

这篇具有很好参考价值的文章主要介绍了下列程序的运行结果是 #include <stdio.h> void main() { int x = 10, y = 20, z = 30;。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、直接运行程序得出结果

#include <stdio.h>

void main() {
    int x = 10, y = 20, z = 30;
    printf("%d %d %d %d\n", x = y = z, x = y == z, x == (y = z), x == (y == z));

}

不用说程序运行就知道结果了:30 30 0 0

以下程序的运行结果是include,C,算法,c语言

可是,这到底是怎么来的?

2、分析一下每一次计算后x,y,z的值分别是多少,

于是改成了如下代码形式:

#include <stdio.h>

void main() {
    int x = 10, y = 20, z = 30;
//    printf("%d %d %d %d\n", x = y = z, x = y == z, x == (y = z), x == (y == z));
    printf("%d %d %d %d\n", x = y = z, x, y, z);
    printf("%d %d %d %d\n", x = y == z, x, y, z);
    printf("%d %d %d %d\n", x == (y = z), x, y, z);
    printf("%d %d %d %d\n", x == (y == z), x, y, z);

}

运行结果是:30 1 0 1

以下程序的运行结果是include,C,算法,c语言

这个结果和我笔算的结果一样,我很满意,不过应该是有问题的?,问题出在这里分多行运行,x,y,z的值在运行完后有改变,所以这样是不行的?

3、再次完美改写,

还是放在一个printf运行,输出每个式子后的x,y,z

#include <stdio.h>

void main() {
    int x = 10, y = 20, z = 30;
    printf("%d: x=%d y=%d z=%d\n%d: x=%d y=%d z=%d\n%d: x=%d y=%d z=%d\n%d: x=%d y=%d z=%d \n",
           x = y = z, x, y, z,
           x = y == z, x, y, z,
           x == (y = z), x, y, z,
           x == (y == z), x, y, z);

}

看运行结果:

以下程序的运行结果是include,C,算法,c语言

下面来分析结果:

        1、在第1个式子运行时,x=y=z,我们把z=30赋值给y,然后又赋值给x,所以 x=y=z=30;

所以这里输出结果就是30。

        2、在第 2个式子运行时,x=y==z,优先级:比较运算符>赋值运算符,所以y==z是返回真值1,因为y=z=30,再赋值x=1,那么应该输出为1才是,可是可是输出为30诶???

        3、在第3个式子时,x==(y=z),括号的优先级高,那么y=z=30,此时x=30,那么比较运算的结果是成立的,返回真值1才是。可是输出结果是0诶??

        4、在第4学式子时,x==(y==z),括号优先级高,那么y==z,返回值是1,x==1,不成立,所以返回为0。

4、这题真的把我整不会了

要是您会,可以不吝赐教吗?文章来源地址https://www.toymoban.com/news/detail-780270.html

到了这里,关于下列程序的运行结果是 #include <stdio.h> void main() { int x = 10, y = 20, z = 30;的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言初学1:详解#include <stdio.h>

    #include stdio.h 称为编译预处理命令,它在告诉C编译器在编译时包含stdio.h文件,如果在代码中,调用了这个头文件中的函数或者宏定义,则需引用该头文件。 stdio.h是c语言中的标准输入输出的头文件,该文件中定义了c语言编译环境下的可以调用的标准函数,部分标准函数如下

    2024年04月17日
    浏览(21)
  • C/C++函数参数声明解析:int fun() 与 int fun(void) 的差异揭秘

      概述: 在C和C++中,int fun()和int fun(void)的区别在于函数参数的声明方式。前者默认允许任意参数,而后者明确表示没有参数。通过清晰的实例源代码,详细解释了它们在函数声明和调用中的不同之处。 在C和C++中,int fun()和int fun(void)的区别在于函数的参数声明方式。以下是

    2024年02月03日
    浏览(27)
  • 详解C#-static void Main(string[] args)

    目录 简介: 举例: 输出结果:​ 总结: 在C#中static void Main(string[] args)这个句话有什么作用,分别代表什么意思!! 这句话是入口函数的声明,指定了C#程序的入口点,并定义了一个名为”Main”静态函数。该函数的参数是一个名为”args”字符串数组,用于接受命令参数,这个句

    2024年02月12日
    浏览(26)
  • 从public static void main(String[] args)看如何构造数据

    java语言中public static void main(String[] args)里面的ages有什么作用? 在Java语言中, public static void main(String[] args) 是一个特殊的方法,它是Java程序的入口点。当你运行一个Java程序时,程序会从这个方法开始执行。这个方法的参数 String[] args 是一个字符串数组,用于传递命令行参数

    2024年02月12日
    浏览(84)
  • 菜鸟学Java public static void main(String[] args) 是什么意思?

    这是一个经典的 Java 程序,它使用了面向对象的编程风格: 第一行代码: 这行代码定义了一个名为 HelloWorld 的公共类( public class ),该类是程序的入口点。 Java 程序中的每个类都必须以一个公共类来定义。文件名必须与公共类的名称相同,并以 .java 作为文件扩展名。 注:

    2024年02月09日
    浏览(39)
  • [Exceptions]hive Cannot convert column xx from void to array<int>.

    写hive sql的时候,用null给复杂类型的列赋值了。null不能转成对应的复杂类型而导致的报错。比如我这次要做的是c、b表有复杂类型这一列。a表没有。要把a表数据导入c,用的 insert into table c select a.*,null from a .就会报错。null这个值,在读取数据的时候,没有值会返回null,用来

    2024年02月11日
    浏览(43)
  • int main(int argc,char* argv[])详解

    int main(int argc,char* argv[]) 也可以写成 int main(int argc,char** argv)。 argc表示程序运行时发送给main函数的命令行参数的个数(包括可执行程序以及传参)。 argv[]是字符指针数组,它的每个元素都是字符指针,指向命令行中每个参数的第一个字符。 argv[0]指向可执行程序。 argv[1]指向

    2024年02月07日
    浏览(23)
  • IDEA运行selenium程序提示错误:Exception in thread “main“ org.openqa.selenium.SessionNotCreatedException:

    SLF4J: Failed to load class \\\"org.slf4j.impl.StaticLoggerBinder\\\". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. Starting ChromeDriver 100.0.4896.60 (6a5d10861ce8de5fce22564658033b43cb7de047-refs/branch-heads/4896@{#875}) on port 50749 Only local connections are

    2023年04月10日
    浏览(34)
  • common/main.js: TypeError: window.WeixinJSBridge.beforeinvoke is not a function 小程序工具项目运行报错

    小程序项目启动成功,但是项目空白 切报错 报错如图 解决办法:

    2024年02月11日
    浏览(39)
  • 无法获得下列放可solidworks standard 无法连接到服务器-15,10,10061如何解决?

    (本方法适合之前的SolidWorks能用但是后来突然报这个错误) 方法一: 打开任务管理器,上面一栏的服务栏 下滑找到  如果是已停止的话右击鼠标,出现以下页面,点击开始(把带SolidWorks前缀的项目都开始)  之后再重启SolidWorks   方法二: 在自己的电脑里面找到之前安装

    2024年02月05日
    浏览(106)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包