学过一遍c++,感觉还有很多地方没搞清楚。这里梳理下指针部分。
定义一个指针变量
过
指针变量的引用
如下例子:
int i, j, *p1, *p2;
i='a';
j='b';
p1=&i;
p2=&j;
则建立起如下图所示的联系。
如果这时赋值表达式:
p2 = p1;
就使p2与p1指向同一对象i,此时*p2就等价于i,而不是j。
如果执行如下表达式:
*p2 = *p1;
则表示把p1指向的内容赋值给p2所指的区域,相当于 j = i ,此时就变成下图所示。
酱油醋交换问题
a、b的物理位置并没有发生变化,只是指针的指向变了。
main(){
int *p1,*p2,*p,a,b;
scanf("%d,%d",&a,&b);
p1=&a;p2=&b;
if(a<b){
p=p1;
p1=p2;
p2=p;
}
printf("\na=%d,b=%d\n",a,b);
printf("max=%d,min=%d\n",*p1, *p2);
}
交换过程如图:
小弟才疏学浅,错误之处请多多指出,谢谢。