在 C 语言中加 1 和减 1 的问题!

发布于 科技 2024-06-25
14个回答
  1. 匿名用户2024-01-29

    a++ b-- =

    此时 a=; a++ 是先用 a,再做 a+1;当涉及到输出时,a 加 1; 因为 A= 是 A 的值,B 的值是先加的,所以 A 本身没有加法,输出 A 应该加 1,B 应该减去 1

  2. 匿名用户2024-01-28

    是的,因为 A 线参与操作,然后添加自身。

    然后分配一个值 1(从左到右)。

    2 !Positive) - 负)从右到左。

    从左到右 3 * %。

    从左到右 4 +(加 - 减)。

    5 从左到右。

    6 < = > = 实例 7 == != 从左到右。

    8 & (按位)从左到右。

    9 从左到右。

    10 |= 从左到右。

    11 &&& 从左到右。

    12 ||= 从左到右。

    13 ?:从右到左。

    14 = += -= *= /= %= &= |:从右到左。

  3. 匿名用户2024-01-27

    但你后来增加了自己。 输出 a 是最新的,即自递增。

  4. 匿名用户2024-01-26

    这个问题只能出现在试卷上。

    真正写**的时候,没人这样写的,可读性太差了!

    实际上,你的语句等价于 a = +,但是在执行这句话后,a 与 1 相加,所以它变成了,b 做了 -- 操作,所以它变成了。

    理由:1编译器扫描 a=a++ b--;

    2.发现 ++ 操作位于变量之后。

    3.在不更改变量值的情况下对方程执行操作。

    4.在此语句之后,将 a++ b--,5您打印出来的结果实际上是操作后的值。

  5. 匿名用户2024-01-25

    自动递增 (++ 和自动递减 (--运算符提供了一种方便快捷的方法来向对象加 1 或减 1。 它们有前部和后部两种形式。 i++ 等价于 i = i + 1。

    而--可以写在变量之前,称为预操作,如:++a; --a;++和--也可以写在变量后面,称为后验运算,如:a++; a--。

    对单个变量执行预操作或事后操作,结果是相同的,两者都将该变量的值增加或减少 1。

    但是,当它们在表达式中使用时,效果就不同了。 当递增或递减运算符放在其操作变量的前面进行预操作时,C 在使用该变量之前执行递增或递减操作; 如果运算符在运算变量之后进行后置运算,则 C 在运算变量的值之后执行递增或递减运算。

  6. 匿名用户2024-01-24

    ++n加1后执行,例如n的初始值为2,m的初始值为1,m+=++n; m 的值应为 4 先执行 n++,然后加 1 例如,n 的初始值为 2,m 的初始值为 1,m+=n++; m 的值应为 3 --n 和 n--ditto。

  7. 匿名用户2024-01-23

    ++n 是在 n 加 1 之后执行语句。 n++ 是先执行语句,然后执行 n 加 1。 -n 是 n 减 1 的第一次执行,然后是执行语句。

    n-- 是语句的第一次执行,然后是 n 自减去 1。 假设 n=5 x=n++ x=5 n=6 x=++n x=6 n=6

  8. 匿名用户2024-01-22

    6. X希望对你有帮助。

    --对奥地利---的采用感到满意

    4. 首先,i++==1&&(j==3||k++==3) 是一个 bai 逻辑表达式。

    i++==1&&(j==3||k++==3)分为两部分:i++==1和(+j==3||k++==3) 他们的关系是和关系。

    因此,这两个部分都将被执行。

    i++==1

    就是确定此时 i 是否等于 1(因为 ++ 在后面),此时 i=1;

    执行此句后,i=2

    然后执行第二部分。

    +j==3||k++==3)

    它分为两部分。

    j==3 和 k++==3。

    这两部分是 or 的关系。

    如果第一部分满足条件,则不执行以下部分。

    如果第一部分不满足条件,则执行下一部分。

    j==3 是 j 加 1 先自己,然后判断 j 是否等于 3

    这部分的结果是真的。

    所以后半部分没有执行。

    最终结果是 i=2 j=3 k=3

  9. 匿名用户2024-01-21

    问题 1:当遵循 ++ 时,先执行语句,然后执行。 因此,4<2 不成立,取 y 的值,此时 y 没有变化,所以它是 2。

    问题2:这有点难。 关键是为什么 k 的值是 3 而不是 4。 因为“or”运算,前面的++j已经是真的,所以k不再判断,也就是k++不执行,所以k没有变。

    问题 3:不用说,--在后面,在 printf 中,原始值仍然是 23。 然后在执行 printf 后,它立即变为 22,while 中的值变为 ! 22。

    房东,你有什么问题吗?

    还有这样一个问题,i=1; a=i++;b=a;c=i+++i++;让我们找出 abc 的值。 如果你把; 如果号码被替换会发生什么,都是相似的。 也就是说,自加法和自减法,所有这些都在单个语句中限定。

  10. 匿名用户2024-01-20

    等于9个过程:先计算自增自递减,但由于前三个是后缀,所以只在播放变线执行后进行,所以先是2+2+2+(+i)

    然后由于前缀 (++i) 的自动增量,最后一个 i 变为 3,最后变为 3。

    但是,在执行该行之后,前三个自递增和自递减字符是算术字符,因此 i(3)--i(4)--i(5)。

    最后。 --i(4)

  11. 匿名用户2024-01-19

    j=i+(+j)

    和 j=++i+j

    和 j=j+++i

    都是 6 个。 对于 j=i+(+j),首先计算 ++j 得到 j=1, i=5,所以 j=j+i++ 的 j=6; 运算符优先于 +,i++ 首先取 i 的值,然后将 1 加到 i,所以 j=5,然后 i=6

    对于 j=++i+j,+ 运算符优先于 +,因此首先计算 ++i,首先计算 ++i 是 i 加 1,然后使用 i 的值,在本例中为 i=6,因此 j=6+0=6

    对于j=j+++i(我猜是这样,房东写错了),其实j=(j++)i,运算j++,就是先用j=0的值,得到j=5,再加1得到6

  12. 匿名用户2024-01-18

    j=++i+j 是正确的。

    找一本稍微好一点的教科书来掌握操作员的优先级,例如 Microsoft 上的教科书

  13. 匿名用户2024-01-17

    计算过程取决于编译器。 不同的编译器可能会产生不同的结果。 这种题目不应该用来测试学生,根本就没有固定的答案,不知道为什么教C的老师总是会想出这种题目。

  14. 匿名用户2024-01-16

    去解释一下。

    对于自递增和自递减计算,由于不同机器上的解释略有不同,因此会得到不同的结果。

    在您的机器上获得 15 和 22 这样的结果,您的机器计算如下:

    1) p=(i++)i++)i++)i++),因为是后自增,所以机器只有在执行完这句话后才会增加!所以先按 i=5 加法,结果是 p=15。

    2)Q=(++J)+(J)+(J),注意这是自增的!机器首先计算第一个加法,(+j)+(j),当机器得到两个加法时,它首先进行两个自增量,此时j的值已经变为5+1+1=7,所以得到的两个加法是7! 第一步是 7+7=14。

    然后做第二次加法14+(+j),取第三次加法时,第一次自增j=j+1=7+1=8,计算为14+8=22。

    请注意,(1)上述分析并不适用于所有机器。 其他结果可以在不同的机器上获得。 (2)因此,在实际编程中,尽量不要使用公式p=(i++)i++)i++)和q=(++j)+(j)+(j)!

    当然,故意让人们无法理解或不怕犯错除外。

相关回答
18个回答2024-06-25

if(expression) 如果 expression=0 为 false,则表达式不等于 0 为 true。 >>>More

11个回答2024-06-25

不要读这种书。

说实话,写这种书的人的水平不是很好,你能指望他写出多少好**。 >>>More

22个回答2024-06-25

int count=0;

count++;自加法的结果被赋值给 count,所以它是 count 的值变化,你输出 count++ >>>More

6个回答2024-06-25

这么简单的问题,你不想想就出来了吗

9个回答2024-06-25

首先,y[j++]= x[i]; 等价于 y[j]= x[i]; j++;前者只是一种相对紧凑的写法,这也是后者加法的典型用法。 >>>More