代码附上:
# include <stdio.h>
struct Test
{
int idNum;
double *ptPay;
};
int main()
{
struct Test emp;
double pay = 456.20; emp . idNum = 123456;
emp . ptPay = &pay;
printf("\nEmployee number %d was paid $%6.2f", emp . idNum, emp . ptPay);
printf("\nEmployee number %d was paid $%6.2f", emp . idNum,emp.ptPay);
printf("\nEmployee number %d was paid $%6.2f", emp . idNum, *(emp . ptPay));
return 0;
}
我想知道为什么这样运行之后 给出的输出是
但是把第一个printf();中的emp.ptPay修改成*emp.ptPay之后
输出变成了
照理说第二行输出不是应该不变么
求指导
# include <stdio.h>
struct Test
{
int idNum;
double *ptPay;
};
int main()
{
struct Test emp;
double pay = 456.20; emp . idNum = 123456;
emp . ptPay = &pay;
printf("\nEmployee number %d was paid $%6.2f", emp . idNum, emp . ptPay);
printf("\nEmployee number %d was paid $%6.2f", emp . idNum,emp.ptPay);
printf("\nEmployee number %d was paid $%6.2f", emp . idNum, *(emp . ptPay));
return 0;
}
我想知道为什么这样运行之后 给出的输出是

但是把第一个printf();中的emp.ptPay修改成*emp.ptPay之后
输出变成了

照理说第二行输出不是应该不变么
求指导
