我有下面的C程序,我不理解下面的程序的输出。
#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*的意思是什么?
发布于 2014-01-22 14:07:38
4的含义是什么?
那里的*是乘法运算符。该摘录中只显示了一个操作数4。完整的乘法是:
4* - *p2更清楚地写成
4 * -(*p2)写出表达式,替换值。我们可以忽略x,因为它没有被使用。这就让我们:
y= 4* - *p2 / *p1+10;*p2是b,也就是4。*p1是a,它是12。所以表达式是:
y = 4 * -4 / 12 + 10;这一评估结果是:
y = ((4 * -4) / 12) + 10;这就是
y = (-16 / 12) + 10;这就是
y = -1 + 10;发布于 2014-01-22 14:06:04
这一行中的间距可能会引起混淆:
y=4* - *p2 / *p1+10;这相当于:
y = 4 * (-*p2) / *p1 + 10;但间距使得它看起来像一个减法。
发布于 2014-01-22 14:05:40
密码
4* - *p2手段
4 * (-*p2)所以*意思是简单的乘法。
https://stackoverflow.com/questions/21285048
复制相似问题