C程序中指针题目

来源:百度知道 编辑:UC知道 时间:2024/05/20 09:27:25
main()
{
int k=2,m=4,n=6;
int *pk=&k,*pm=&m,*p;
*(p=&n)=*pk*(*pm);

printf("%d\n",n);
}
答案是多少,最复杂的那句是什么意思!

答案是8
*pk=&k <=> *pk = 2;
*pm=&m <=> *pm = 4;
*(p=&n) <=> *p = 6;
*(p=&n)=*pk*(*pm); <=> *p = 2*4
定义指针并给它赋值在一起进行,而且是引用

n = 8
复杂那句实际上是 n = 2*4
所以答案为8

答案是8,我想你不懂这道题的原因是你没有理解P和*P的意义吧.我来讲下.
int *p ;是定义了一个指针,现在P是这个指针的名字,它指向的是地址.而*P是取出指针所指的地址的值.
这样你自己去理解下,应该很快就能懂最复杂那句话的意思了.
*(p=&n)括号里面是指p指向的是n的地址.