Kod:C++ operator ":"
#include <cstdio>
struct Point
{
int x;
int y;
Point(int t_x, int t_y)
{
x = t_x;
y = t_y;
}
};
int main() {
Point lp(1, 4);
Point rp(5, 0);
int min_x, max_x, min_y, max_y;
lp.x > rp.x ? max_x = lp.x, min_x = rp.x : max_x = rp.x, min_x = lp.x;
lp.y > rp.y ? max_y = lp.y, min_y = rp.y : max_y = rp.y, min_y = lp.y;
std::printf("min_x: %d max_x: %d\n", min_x, max_x);
std::printf("min_y: %d max_y: %d\n", min_y, max_y);
}
myślę:
min_x=1 max_x=5
min_y=0 max_y=4
Ale Real:
min_x=1 max_x=5
min_y=4 max_y=4
Dlaczego?
Spójrz na pierwszeństwo operatorów. – chris
O Boże, proszę proszę PROSZĘ, nie rób tego. –
Pierwszeństwo operacji może być trudne, gdy używasz '?:', Upewnij się, że używasz '()' wokół, aby być bezpiecznym. – Havenard