Co oznacza znak zapytania (?) W C?Co robi? w C oznacza?
Odpowiedz
?
jest pierwszym symbolem operatora potrójnego ?:
.
a = (b==0) ? 1 : 0;
a
będzie miał wartość 1, jeśli b
jest równa 0
, a 0 w przeciwnym razie.
Jest to operator warunkowy. Na przykład patrz poniższy link http://en.wikipedia.org/wiki/Conditional_operator
to prawdopodobnie częścią ternary operator:
const int numApples = …;
printf("I have %i apple%s.\n", numApples == 1 ? "" : "s");
Tylko po to, aby uratować przyszłe pokolenia przed zamieszaniem. Jest to "operator warunkowy". Jest to po prostu operator trójskładnikowy, którego jest tylko jeden w C i C++. Istnieje również wiele operatorów jednoargumentowych (~,!, -) i binarnych (+, -, <<) w C/C++. Neato! –
Jest to tak zwany operator warunkowy. Możesz skrócić swoją instrukcję if if za pomocą tego operatora.
Poniższy link powinien wszystko wyjaśnić
http://www.crasseux.com/books/ctutorial/The-question-mark-operator.html
Dodatkowo do innych odpowiedzi, ?
może być częścią trigraph.
Może również być częścią ciągu lub znaku w ogóle bez bycia trigrafem: 'char c = '?'; char const * s = "?" '. –
To ternary Operator który operator warunkowy wykorzystuje jak if inny
przykład
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;
Zastosowanie: Składnia : jest
assignment_Variable = Condition ? value_if_true : value_if_false;
Najprawdopodobniej "?" jest operatorem trójskładnikowym. Jego gramatyka jest:
RESULT = (COND) ? (STATEMEN IF TRUE) : (STATEMENT IF FALSE)
Jest to miły skrótem typowym if-else:
if (COND) {
RESULT = (STATEMENT IF TRUE);
} else {
RESULT = (STATEMENT IF FALSE);
gdyż może to zazwyczaj mieszczą się na jednej linii i może poprawić czytelność.
Niektóre odpowiedzi odnoszą się tutaj do trigrafii, która jest związana z preprocesorem C. Spójrz na to naprawdę głupiego programu trigraphs.c
:
# /* preprocessor will remove single hash symbols and this comment */
int main()
{
char *t = "??=";
char *p = "??/"";
char *s = "??'";
??(, ??), ??! ??<, ??>, ??-
return 0;
}
powołując się tylko preprocesora C uruchamiając gcc -E -trigraphs trigraph.c
wyjście jest
int main()
{
char *t = "#"
char *p = "\"";
char *s = "^";
[, ], | {, }, ~
return 0;
}
Mam nadzieję, że wyjaśnia trochę co za trójznaków są i co "?" "oznacza" w C.
- 1. Co robi -> oznacza w celu C
- 2. Co robi? operator oznacza w C# po deklaracji typu?
- 3. C++ - co robi [=]?
- 4. Co oznacza() => w C#?
- 5. Co oznacza: * w C++?
- 6. Co robi "typedef void (* coś)()" oznacza
- 7. C# co robi operator ==?
- 8. Co oznacza "[to]" oznacza w języku C++
- 9. co robi int() w C++?
- 10. Co robi instalacja pip. (kropka) oznacza?
- 11. Co oznacza operator C# =>?
- 12. Co oznacza (void) w C++?
- 13. Co oznacza "klasa:" w C++?
- 14. co oznacza „$ &” oznacza w Ruby
- 15. Co robi deklaracja "CALLBACK" w C?
- 16. Co oznacza [param: NotNull] w C#?
- 17. W C co oznacza [foo] = bar?
- 18. W Swift, co robi! symbol oznacza w sygnaturze funkcji?
- 19. Co robi a. w deklaracji importu w Pythonie oznacza?
- 20. Co = ~ oznacza w Perl
- 21. Co robi atrybut C# CoClass?
- 22. Co robi * w CSS?
- 23. Co robi: -> oznacza w specyfikacji typu Haskell
- 24. Co robi operator/= w języku C#?
- 25. Co robi "* (wskaźnik + liczba całkowita)" w C++?
- 26. Co robi @class w Objective-C?
- 27. Co dokładnie robi instrukcja return w C#?
- 28. co robi program obsługi C/C++ SIGFPE?
- 29. Co robi \? (znak zapytania z ukośnikiem odwrotnym) oznacza sekwencję ucieczki?
- 30. Co oznacza (+ var) oznacza
Czy możesz podać kontekstowy przykład miejsca, w którym zobaczysz znak "?"? –
@bagrazed: Po prostu ciekawy: jakie inne zastosowanie niż operator trójskładnikowy myślisz? – chris
@chris to również (w poważnym, starym kodzie) część [trigraph] (http://msdn.microsoft.com/en-us/library/bt0y4awe.aspx), ponieważ Benoit pobił mnie do odpowiedzi. – Rup