指针的奇妙
视频锁定
{$ currentTime | date:'mm:ss' $}
{$ timeLeft | date:'mm:ss' $}
我们先来看一个程序,通过这个程序找到最大值和最小值:
int main()
{
int *p1, *p2, *p, a = 10, b = 20;
p1 = &a;
p2 = &b;
if (a < b)
{
p = p1;
p1 = p2;
p2 = p;
}
printf("a=%d, b=%d\n", a, b);
printf("最大值=%d, 最小值=%d\n", *p1, *p2);
return 0;
}
先预测一下上面的程序会输出什么结果?然后在练习区运行一下上面的程序看看输出的结果是否跟你预测的相同?
p = p1;
p1 = p2;
p2 = p;
这3个语句时,只是把p1
和p2
所指向的地址进行了置换,原先地址中的内容并没有发生任何改变,因此变量a
和b
的值没有发生改变。指针是不是很奇妙?
在线练习
{$ activeFileHint $}