举个例子:
int a=3,*p1=&a;
int b=4,*p2=&b;
int c=5,*p3=&c;
*p1*=*p1**p2**p3;
cout<<a<<endl;
输出:
180
解释:
-
int a=3, *p1=&a;
定义整数变量a
并将其初始化为 3,同时定义指针p1
并将其指向a
。-
p1
是一个指针变量,其值是a
的内存地址。p1
存储了a
变量的地址,而不是它的值。
-
*p1
表示通过指针p1
访问其指向的内存地址,这个地址是a
的地址。因此,*p1
实际上表示的是指针p1
的指向的那个内存地址的值,即为a
的值。
所以,
p1
存储了a
的地址,而*p1
表示a
的值。 -
-
int b=4, *p2=&b;
定义整数变量b
并将其初始化为 4,同时定义指针p2
并将其指向b
。 -
int c=5, *p3=&c;
定义整数变量c
并将其初始化为 5,同时定义指针p3
并将其指向c
。 -
*p1 *= *p1 * *p2 * *p3;
这一行执行了一系列乘法操作,将a
的值与a * b * c
的结果相乘,然后将结果存储回a
。所以a
的值现在为3 * 3 * 4 * 5 = 180
。 -
cout << a << endl;
这一行将输出变量a
的值,即 180。