首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不理解计算

不理解计算
EN

Stack Overflow用户
提问于 2014-01-22 14:02:50
回答 4查看 148关注 0票数 2

我有下面的C程序,我不理解下面的程序的输出。

代码语言:javascript
复制
#include <stdio.h>

int main()
{
    int a,b, *p1, *p2, x,y,z;

    a=12;
    b=4;

    p1=&a;
    p2=&b;

    x=*p1 * *p2-6;
    y=4* - *p2 / *p1+10;

    printf("y=%d", y);

    return 0;
}

程序的输出是9,但是4*的意思是什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-01-22 14:07:38

4的含义是什么?

那里的*是乘法运算符。该摘录中只显示了一个操作数4。完整的乘法是:

代码语言:javascript
复制
4* - *p2

更清楚地写成

代码语言:javascript
复制
4 * -(*p2)

写出表达式,替换值。我们可以忽略x,因为它没有被使用。这就让我们:

代码语言:javascript
复制
y= 4* - *p2 / *p1+10;

*p2b,也就是4*p1a,它是12。所以表达式是:

代码语言:javascript
复制
y = 4 * -4 / 12 + 10;

这一评估结果是:

代码语言:javascript
复制
y = ((4 * -4) / 12) + 10;

这就是

代码语言:javascript
复制
y = (-16 / 12) + 10;

这就是

代码语言:javascript
复制
y = -1 + 10;
票数 4
EN

Stack Overflow用户

发布于 2014-01-22 14:06:04

这一行中的间距可能会引起混淆:

代码语言:javascript
复制
y=4* - *p2 / *p1+10;

这相当于:

代码语言:javascript
复制
y = 4 * (-*p2) / *p1 + 10;

但间距使得它看起来像一个减法。

票数 4
EN

Stack Overflow用户

发布于 2014-01-22 14:05:40

密码

代码语言:javascript
复制
4* - *p2

手段

代码语言:javascript
复制
4 * (-*p2)

所以*意思是简单的乘法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21285048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档