关于关系表达式的问题


*x = *y = *x > *y ? *x : *y;

具体是什么意思,关于表达式的问题

x和y都是指针,这个句子的本质是给x和y指向的那两个地址进行赋值

  • *x 和 *y是取出这两个地址上的值
  • *x > *y表示x指向的地址的值比y指向的地址的值大
  • *x > *y ? *x : *y表示,如果问号前面的成立,就取 *x,如果不成立,就取 *y
  • 所以这代码的意思是将x和y两个指针指向的地址的值,都变为两者中最大的那个

比如
int a=1,b=2;
int *x=&a, *y=&b;
这代码可以最终使得a=b=2,取两者最大值

img