C语言中,p1和p2都是指向int的指针,k为int型变量。请问:(1) k=*p1+*p2 (2) k=*p1*(*p2)有什么意义?

如题所述

p1和p2都是指向int的指针,也就是说
p1和p2分别存了某个变量的地址。*p1等同于p1指向的变量,或者等同于所在p1(地址)的变量。*p2同理。
用实例:
int
a
=
6,
b
=
7,
k;
int*
p1
=
&a;//p1存了a的地址即(&a)等于p1,
但(a)和p1是两个不同的东西。因此说p1和a(
或&a和a
)有了关系,就像路牌和路的关系,路牌指路,指地点。p是地址,*p就是在地址空间p上的a,即(a)等于*p。
地址
int*
p2
=
&b;
k
=
*p1
+
*p2;
k
=
(*p1)
*
(*p2);
其中:
(k
=
*p1
+
*p2)就等同于k=a+b,即求a与b的和
(k
=
(*p1)
*
(*p2))同理。
指针很简单的,篇幅长不代表这概念很复杂。
理解关键在于,不要停留在字面上,语言只是符号,它指称了实体。
温馨提示:答案为网友推荐,仅供参考
相似回答