鱼C论坛

 找回密码
 立即注册
查看: 348|回复: 1

[已解决]c语言b的赋值是根据什么来的

[复制链接]
发表于 2023-12-31 01:43:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>

int main()
{
        int a,b;
        (a=0)&&(b=5);
        printf("a = %d, b = %d\n",a,b);


        (a=1)||(b=5);
        printf("a = %d, b = %d\n",a,b);


        return 0;
我对照小甲鱼的视频来没问题但是我突发奇想举一反三我不对ab进行初始赋值只是将其变量设置好但此时运行时a的值是不变的b的值一直在变而且
都是七位数
最佳答案
2023-12-31 01:44:01
C语言中的赋值操作是根据表达式的运算顺序进行的。在一个表达式中,从左到右依次计算并赋值。

在你提供的代码中,`(a=0)&&(b=5)` 表达式先计算 `a=0`,将0赋值给变量a,然后再计算 `b=5`,将5赋值给变量b。由于 `&&` 运算符是逻辑与运算符,需要两个条件都为真才返回真,所以整个表达式的结果为假,不会执行赋值操作。

同样地,在 `(a=1)||(b=5)` 中,`a=1` 让变量a的值变为1,然后计算 `b=5`,将5赋值给变量b。因为 `||` 是逻辑或运算符,只要有一个条件为真就返回真,所以整个表达式的结果为真,b的值不会改变。

如果你不对变量a和b进行初始赋值,它们的值是不确定的(即垃圾值)。在代码运行过程中,这些垃圾值可能会被改写成其他数值。这是因为计算机内存中的数据是不确定的,可能是之前存储的数据,也可能是随机值。所以a的值不变,b的值一直在变,且都是七位数。

如果你想要得到确定的结果,应该对a和b进行初始赋值,例如:
  1. int a = 0, b = 0;
复制代码


以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
1703958122490.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-12-31 01:44:01 | 显示全部楼层    本楼为最佳答案   
C语言中的赋值操作是根据表达式的运算顺序进行的。在一个表达式中,从左到右依次计算并赋值。

在你提供的代码中,`(a=0)&&(b=5)` 表达式先计算 `a=0`,将0赋值给变量a,然后再计算 `b=5`,将5赋值给变量b。由于 `&&` 运算符是逻辑与运算符,需要两个条件都为真才返回真,所以整个表达式的结果为假,不会执行赋值操作。

同样地,在 `(a=1)||(b=5)` 中,`a=1` 让变量a的值变为1,然后计算 `b=5`,将5赋值给变量b。因为 `||` 是逻辑或运算符,只要有一个条件为真就返回真,所以整个表达式的结果为真,b的值不会改变。

如果你不对变量a和b进行初始赋值,它们的值是不确定的(即垃圾值)。在代码运行过程中,这些垃圾值可能会被改写成其他数值。这是因为计算机内存中的数据是不确定的,可能是之前存储的数据,也可能是随机值。所以a的值不变,b的值一直在变,且都是七位数。

如果你想要得到确定的结果,应该对a和b进行初始赋值,例如:
  1. int a = 0, b = 0;
复制代码


以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-27 19:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表