多个异名同地址的变量,用指针仅操作其中一个会引起其它所有变量的改变。
例如下面代码的第10行。
#include "stdafx.h" void fun(int *a, int *b, int *c) { int *temp; temp = a; // a-&a-5, b-&b-7, c-&c-3, t-&a-5 a = b; // a-&b-7, b-&b-7, c-&c-3, t-&a-5 b = temp; // a-&b-7, b-&a-5, c-&c-3, t-&a-5 *temp = *b; // a-&b-7, b-&a-5, c-&c-3, t-&a-5 *b = *c; //★ a-&b-7, b-&a-3, c-&c-3, t-&a-3 *c = *temp; //a-&b-7, b-&a-3, c-&c-5, t-&a-3 } int main() { int a, b, c, *p1, *p2, *p3; a = 5; b = 7; c = 3; p1 = &a; p2 = &b; p3 = &c; fun(p1, p2, p3); printf("%d,%d,%d\n", a, b, c); //3 7 3 return 0; }
=
原文地址:https://www.cnblogs.com/miyazakehime/p/9249799.html
时间: 2024-11-02 05:28:58