满意答案
hggggddfrr
2020.01.03
采纳率:44% 等级:9
已帮助:112人
首先理解啥是指针?通俗理解就是一个地址,该地址指向某个对象,对象可能是变量,也可能是函数地址等。
以程序为例,假设a,b,c的地址分别为A,B,C.
执行func()时形参的值分别为A,B,C. 分别用a,b,c变量表示,注意这里不要和main函数中a,b,c混淆.
temp = a, a = b, b = temp,意思为交换a,b的值,语句执行后, a = B, b= A. temp= A.
printf ("a=%d,b=%d\n", *a, *b); 就分别输出地址B和A的内容,即 7 5
*temp = *b, *b = *c, *c = *temp;
*temp = *b;意思为将A地址所在内容赋值给A地址所在内容,那么A地址内用不变. A:5
*b = *c;意思为将C地址内容赋值给A地址所在内容,A地址所在内容变为 A:3.
*c = *temp;意思为将A地址所在内容赋值给C地址处,C地址所在内容变为 C: 3.
printf ("a=%d,b=%d,c=%d\n", *a, *b, *c );即分别打印B,A,C地址内容,即 7 3 3
最后main函数中的打印a,b,c即为 3 7 3,因为main函数中的a,b,c所对应的地址还是A,B,C,不会受到fun中函数的影响.
00分享举报