Dấu hỏi (?) Trong C có nghĩa là gì?Làm gì? trong C nghĩa là gì?
Trả lời
?
là biểu tượng đầu tiên của các nhà điều hành ternary ?:
.
a = (b==0) ? 1 : 0;
a
sẽ có giá trị 1 nếu b
bằng 0
, và 0 nếu ngược lại.
Đây là toán tử có điều kiện. Ví dụ tham khảo liên kết dưới đây http://en.wikipedia.org/wiki/Conditional_operator
Đó có thể là một phần của ternary operator:
const int numApples = …;
printf("I have %i apple%s.\n", numApples == 1 ? "" : "s");
Chỉ để cứu các thế hệ tương lai về bất kỳ sự nhầm lẫn nào ở đây. Nó là "toán tử có điều kiện". Nó chỉ xảy ra là một toán tử bậc ba, trong đó chỉ có một trong C và C++. Có rất nhiều toán tử nhị phân (~,!, -) và nhị phân (+, -, <<) trong C/C++. Neato! –
của các nhà điều hành ternary
, xem http://en.wikipedia.org/wiki/Ternary_operation#C.2C_C.2B.2B.2C_C.23.2C_Objective-C.2C_Java.2C_JavaScript.2C_ActionScript
Đây là một nhà điều hành có điều kiện để gọi. Bạn có thể rút ngắn câu lệnh if khác của bạn với toán tử này.
Các liên kết sau đây sẽ giải thích tất cả mọi thứ
http://www.crasseux.com/books/ctutorial/The-question-mark-operator.html
Ngoài ra để câu trả lời khác, ?
thể là một phần của một trigraph.
Nó cũng có thể là một phần của chuỗi hoặc ký tự nói chung mà không phải là một dấu vết: 'char c = '?'; char const * s = "?" '. –
Đây là một ternary Operator đó là nhà điều hành có điều kiện sử dụng như if-else
dụ
int i=1;
int j=2;
int k;
k= i > j ? i : j;
//which is same as
if(i>j)
k=i;
else
k=j;
Cách sử dụng: Cú pháp của : là
assignment_Variable = Condition ? value_if_true : value_if_false;
Rất có thể các '?' là toán tử bậc ba. ngữ pháp của nó là:
RESULT = (COND) ? (STATEMEN IF TRUE) : (STATEMENT IF FALSE)
Đó là một cách viết tắt tốt đẹp cho các báo cáo điển hình if-else:
if (COND) {
RESULT = (STATEMENT IF TRUE);
} else {
RESULT = (STATEMENT IF FALSE);
vì nó thường có thể phù hợp trên cùng một dòng và có thể cải thiện khả năng đọc.
Một số câu trả lời ở đây đề cập đến một dấu vết, có liên quan đến bộ tiền xử lý C. Hãy nhìn vào chương trình thực sự ngớ ngẩn này, trigraphs.c
:
# /* preprocessor will remove single hash symbols and this comment */
int main()
{
char *t = "??=";
char *p = "??/"";
char *s = "??'";
??(, ??), ??! ??<, ??>, ??-
return 0;
}
cách gọi chỉ Preprocessor c bằng cách chạy gcc -E -trigraphs trigraph.c
đầu ra là
int main()
{
char *t = "#"
char *p = "\"";
char *s = "^";
[, ], | {, }, ~
return 0;
}
Hy vọng rằng làm rõ một chút những gì một trigraphs, và những gì một '?' "có nghĩa là" trong C.
- 1. ** nghĩa là gì trong C
- 2. '&' có nghĩa là gì trong C++?
- 3. () => có nghĩa là gì trong C#?
- 4. Ý nghĩa của '==' trong C là gì?
- 5. Nghĩa là gì trong mục tiêu-c?
- 6. Điều gì: :: có nghĩa là trong C++?
- 7. "class:" có nghĩa là gì trong C++?
- 8. Có nghĩa là gì trong C++?
- 9. EPS có nghĩa là gì trong C?
- 10. "() =>" có nghĩa là gì trong C#?
- 11. 0u có nghĩa là gì trong C#?
- 12. Chữ "nghĩa đen" trong C++ là gì?
- 13. Mã C++ này có nghĩa là gì?
- 14. biến __file__ có nghĩa là gì/làm gì?
- 15. @ nghĩa là gì trong PHP?
- 16. CultureInfo.InvariantCulture nghĩa là gì?
- 17. '~' có nghĩa là gì trong python?
- 18. "Nổi" nghĩa là gì?
- 19. gì <c-r> = có nghĩa là trong Vim
- 20. "for (;;)" có nghĩa là gì?
- 21. /([^.]*)\.(.*)/ có nghĩa là gì?
- 22. Shellcode trong C - Điều này có nghĩa là gì?
- 23. "\\. \", "\ ?? \", "\\? \", "\\" có nghĩa là gì?
- 24. Đường ống thẳng đứng (|) có nghĩa là gì trong C++?
- 25. {} có nghĩa là gì?
- 26. || = nghĩa là gì?
- 27. = * có nghĩa là gì?
- 28. Hibernate.default_schema nghĩa là gì?
- 29. 'Return * this' có nghĩa là gì trong C++?
- 30. Thuật ngữ "lexical" có nghĩa là gì trong C++?
Bạn có thể cho chúng tôi ví dụ theo ngữ cảnh về nơi bạn nhìn thấy '?' không? –
@bitcrazed: Chỉ cần tò mò: những gì sử dụng khác hơn so với các nhà điều hành ternary là bạn nghĩ đến? – chris
@chris nó cũng (trong mã nghiêm túc cũ) một phần của một [trigraph] (http://msdn.microsoft.com/en-us/library/bt0y4awe.aspx), như Benoit đánh bại tôi để trả lời. – Rup