K & R Second Edition (trang 71) - Tôi phải bỏ lỡ giải thích:dấu chấm hỏi nhà điều hành trong các biểu thức
sign = (s[i] == '-') ? -1 : 1;
Bối cảnh của việc này là một chức năng có thể chuyển đổi một chuỗi thành một đôi. Phần này đặc biệt xuất hiện sau khi chức năng bỏ qua khoảng trắng. tôi suy ra nó là kiểm tra giá trị tích cực hay tiêu cực, và lưu nó như một trong hai -1 hoặc +1 để chuyển đổi dấu ở phần cuối của hàm ... return sign * val /power;
Tôi muốn làm tốt hơn so với suy luận. .. Tôi đặc biệt không chắc chắn về những gì các ?
và : 1
đang làm ở đây (hoặc bất cứ nơi nào, cho rằng vấn đề).
Dường như có vẻ như tuyên bố trừu tượng if
. Trường hợp ?
kiểm tra sự thật và :
là else
... thì sao? Có giới hạn ở if/else
không?
Tôi là người mới bắt đầu và tôi đã không đi qua cú pháp biểu thức này trước đây, vì vậy tôi tự hỏi nếu có một lý do cụ thể nó dường như thường được thay thế bằng một chính thức if/else
--bên cạnh, có lẽ, dễ đọc?
Được chọn làm câu trả lời vì bạn đã giải quyết lý do tại sao, cũng như những gì. – d0rmLife