|
Оператор Запятого
Запятой част использована в ч по мере того как просто знак пунктуации, для того чтобы отделить переменные объявления, аргументы функции, etc. В некоторых ситуациях, запятой действует как оператор.
Вы можете сформировать выражение путем отделять 2 sub выражения с запятым. Результат следующим образом:
- Оба выражения оценены, при левое выражение будучи оцениванными сперва.
- Все выражение оценивает к значению правого выражения. Например, following заявление задает значение б к х, после этого инкрементов а, и после этого инкрементов б:
x = (a++, b++);
Предшествование оператора ч (сводка операторов ч)
Ряд и Associativity |
Операторы |
1(выйдено к праву) |
() [ ] - >. |
2(право к левой стороне) |
! ~ -- * (косвенность) & (адресовать-) (тип)
sizeof (унарное) - (унарно) |
3(выйдено к праву) |
* (умножение) / % |
4(выйдено к праву) |
- |
5(выйдено к праву) |
< < > > |
6(выйдено к праву) |
< < = > > = |
7(выйдено к праву) |
= =! = |
8(после того как я ы к праву) |
& (bitwise И) |
9(выйдено к праву) |
^ |
10(выйдено к праву) |
| |
11(выйдено к праву) |
&& |
12(выйдено к праву) |
|| |
13(право к левой стороне) |
?: |
14(право к левой стороне) |
= = - = * =/= % = & = ^ = |= < < = > > = |
15(выйдено к праву) |
, |
() оператор функции; [ ] оператор блока. |
|
Препятствуйте нам принять пример пользы операторов:
/* Польза Операторов */
int main()
{
int x = 0, y = 2, z = 1025;
float a = 0.0, b = 3.14159, c = -37.234;
/* incrementing */
x = x + 1; /* This increments x */
x++; /* This increments x */
++x; /* This increments x */
z = y++; /* z = 2, y = 3 */
z = ++y; /* z = 4, y = 4 */
/* decrementing */
y = y - 1; /* This decrements y */
y--; /* This decrements y */
--y; /* This decrements y */
y = 3;
z = y--; /* z = 3, y = 2 */
z = --y; /* z = 1, y = 1 */
/* arithmetic op */
a = a + 12; /* This adds 12 to a */
a += 12; /* This adds 12 more to a */
a *= 3.2; /* This multiplies a by 3.2 */
a -= b; /* This subtracts b from a */
a /= 10.0; /* This divides a by 10.0 */
/* conditional expression */
a = (b >= 3.0 ? 2.0 : 10.5 ); /* This expression */
if (b >= 3.0) /* And this expression */
a = 2.0; /* are identical, both */
else /* will cause the same */
a = 10.5; /* result. */
c = (a > b ? a : b); /* c will have the max of a or b */
c = (a > b ? b : a); /* c will have the min of a or b */
printf("x=%d, y=%d, z= %d\n", x, y, z);
printf("a=%f, b=%f, c= %f", a, b, c);
return 0;
}
и результат этой программы будет показан на экране как:
x=3, y=1, z=1
a=2.000000, b=3.141590, c=2.000000 |
|
|