Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Операторы увеличения и уменьшения в Master C:использование и лучшие практики

C – Операторы увеличения и уменьшения

Оператор инкремента (++) увеличивает значение переменной на 1, а оператор декремента (--) уменьшает значение.

Операторы инкремента и декремента часто используются при построении счетных циклов в C (с помощью цикла for). Они также находят применение при обходе массивов и арифметике указателей.

Операторы ++ и -- являются унарными и могут использоваться в качестве префикса или постфикса переменной.

Пример операторов увеличения и уменьшения

Следующий пример содержит несколько операторов, демонстрирующих использование операторов увеличения и уменьшения в различных вариантах –

#include <stdio.h>
int main() {
 int a = 5, b = 5, c = 5, d = 5;
 
 a++; // postfix increment
 ++b; // prefix increment
 c--; // postfix decrement
 --d; // prefix decrement
 printf("a = %d\n", a);
 printf("b = %d\n", b);
 printf("c = %d\n", c);
 printf("d = %d\n", d);
 return 0;
}

Вывод

Когда вы запустите этот код, он выдаст следующий результат –

a = 6
b = 6
c = 4
d = 4

Пример пояснения

Другими словами, «a++» имеет тот же эффект, что и «++a», поскольку оба выражения увеличивают значение переменной «a» на 1. Аналогично, «a--» имеет тот же эффект, что и «--a».

Выражение «а++;» можно рассматривать как эквивалент утверждения «a =a + 1;». Здесь выражение справа добавляет 1 к «a», и результату присваивается обратно 1, в результате чего значение «a» увеличивается на 1.

Аналогично, «б--;» эквивалентно "b =b 1;".

Типы оператора приращения

Существует два типа операторов приращения:предварительное приращение. и приращение публикации .

Оператор префикса (префикс)

В выражении оператор предварительного приращения увеличивает значение переменной на 1 перед использованием значения переменной.

Синтаксис

++variable_name;

Пример

В следующем примере мы используем оператор предварительного приращения, при котором значение «x» будет увеличено на 1, а затем увеличенное значение будет использоваться в выражении.

#include <stdio.h>
int main() {
 int x = 10;
 int y = 10 + ++x;
 printf("x = %d, y = %d\n", x, y);
 return 0;
}

Когда вы запустите этот код, он выдаст следующий результат –

x = 11, y = 21

Оператор инкремента Post (Postfix)

В выражении оператор постинкремента увеличивает значение переменной на 1 после использования значения переменной.

Синтаксис

variable_name++;

Пример

В следующем примере мы используем оператор пост-инкремента, где в выражении будет использоваться значение «x», а затем оно будет увеличено на 1.

#include <stdio.h>
int main() {
 int x = 10;
 int y = 10 + x++;
 printf("x = %d, y = %d\n", x, y);
 return 0;
}

Когда вы запустите этот код, он выдаст следующий результат –

x = 11, y = 20

Типы оператора уменьшения

Существует два типа операторов декремента:предварительный декремент. и уменьшение публикации .

Оператор предварительного (префиксного) уменьшения

В выражении оператор предварительного декремента уменьшает значение переменной на 1 перед использованием значения переменной.

Синтаксис

--variable_name;

Пример

В следующем примере мы используем оператор предварительного декремента, при котором значение «x» будет уменьшено на 1, а затем уменьшенное значение будет использоваться в выражении.

#include <stdio.h>
int main() {
 int x = 10;
 int y = 10 + --x;
 printf("x = %d, y = %d\n", x, y);
 return 0;
}

Когда вы запустите этот код, он выдаст следующий результат –

x = 9, y = 19

Оператор декремента Post (Postfix)

В выражении оператор постдекремента уменьшает значение переменной на 1 после использования значения переменной.

Синтаксис

variable_name--;

Пример

В следующем примере мы используем оператор постдекремента, где в выражении будет использоваться значение «x», а затем оно будет уменьшено на 1.

#include <stdio.h>
int main() {
 int x = 10;
 int y = 10 + x--;
 printf("x = %d, y = %d\n", x, y);
 return 0;
}

Когда вы запустите этот код, он выдаст следующий результат –

x = 9, y = 20

Дополнительные примеры операторов увеличения и уменьшения

Пример 1

В следующем примере показано использование префиксного/постфиксного увеличения/уменьшения –

#include <stdio.h>
int main(){
 char a = 'a', b = 'M';
 int x = 5, y = 23;
 printf("a: %c b: %c\n", a, b);
 
 a++;
 printf("postfix increment a: %c\n", a);
 
 ++b;
 printf("prefix increment b: %c\n", b);
 printf("x: %d y: %d\n", x, y);
 
 x--;
 printf("postfix decrement x : %d\n", x);
 
 --y;
 printf("prefix decrement y : %d\n", y);
 return 0;
}

Вывод

Когда вы запустите этот код, он выдаст следующий результат –

a: a b: M
postfix increment a: b
prefix increment b: N
x: 5 y: 23
postfix decrement x: 4
prefix decrement y: 22

Приведенный выше пример показывает, что префиксные и постфиксные операторы одинаково влияют на значение переменной операнда. Однако когда эти операторы «++» или «--» появляются в выражении вместе с другими операторами, они ведут себя по-другому.

Пример 2

В следующем коде начальные значения переменных «a» и «b» одинаковы, но функция printf() отображает разные значения —

#include <stdio.h>
int main(){
 int x = 5, y = 5;
 printf("x: %d y: %d\n", x,y);
 printf("postfix increment x: %d\n", x++);
 printf("prefix increment y: %d\n", ++y);
 return 0;
}

Вывод

Запустите код и проверьте его вывод –

x: 5 y: 5
postfix increment x: 5
prefix increment y: 6

В первом случае функция printf() печатает значение «x», а затем увеличивает его значение. Во втором случае сначала выполняется оператор инкремента, функция printf() использует для печати увеличенное значение.

Приоритет операторов увеличения и уменьшения

В C существует несколько операторов. Когда в выражении используется несколько операторов, они выполняются в соответствии с их приоритетом. Операторы увеличения и уменьшения ведут себя по-разному при использовании вместе с другими операторами.

Если выражение состоит из операторов увеличения или уменьшения наряду с другими операторами, операции увеличения и уменьшения выполняются в первую очередь. Постфиксные операторы увеличения и уменьшения имеют более высокий приоритет, чем префиксные операторы увеличения и уменьшения.

Читайте также: Приоритет операторов в C

Пример 1

Взгляните на следующий пример –

#include <stdio.h>
int main(){
 int x = 5, z;
 printf("x: %d \n", x);
 z = x++;
 printf("x: %d z: %d\n", x, z);
 return 0;
}

Вывод

Запустите код и проверьте его вывод –

x: 5 
x: 6 z: 5

Поскольку «x++» увеличивает значение «x» до 6, можно ожидать, что «z» также будет равно 6. Однако в результате «z» отображается как 5. Это связано с тем, что оператор присваивания имеет более высокий приоритет над оператором постфиксного приращения. Следовательно, существующее значение «x» присваивается «z» перед увеличением «x».

Пример 2

Взгляните на другой пример ниже –

#include <stdio.h>
int main(){
 int x = 5, y = 5, z;
 printf("x: %d y: %d\n", x,y);
 z = ++y;
 printf("y: %d z: %d\n", y ,z);
 return 0;
}

Вывод

Когда вы запустите этот код, он выдаст следующий результат –

y: 5
y: 6 z: 6

Результат может сбить с толку, поскольку значение «y», как и «z», теперь равно 6. Причина в том, что оператор увеличения префикса имеет более высокий приоритет, чем оператор присваивания. Следовательно, сначала увеличивается значение «y», а затем его новое значение присваивается «z».

Ассоциативность операторов также играет важную роль. Для операторов увеличения и уменьшения ассоциативность осуществляется слева направо. Следовательно, если в одном выражении присутствует несколько операторов увеличения или уменьшения, первым будет выполняться самый левый оператор, перемещаясь вправо.

Пример 3

В этом примере выражение присваивания содержит как префиксные, так и постфиксные операторы.

#include <stdio.h>
int main(){
 int x = 5, y = 5, z;
 z = x++ + ++y;
 printf("x: %d y: %d z: %d\n", x,y,z);
 return 0;
}

Вывод

Запустите код и проверьте его вывод –

x: 6 y:6 z: 11

В этом примере первая операция, которую необходимо выполнить, — это «y++» («y» становится 6). Во-вторых, оператор «+» добавляет «x» (то есть 5) и «y», результат, присвоенный «z», равен 11, а затем «x++» увеличивает «x» до 6.

Использование оператора инкремента в цикле

В C наиболее часто используемый синтаксис цикла for выглядит следующим образом:

for (init_val; final_val; increment) {
 statement(s);
}

Пример

Тело цикла выполняется для всех значений переменной между начальным и конечным значениями, увеличивая ее после каждого раунда.

#include <stdio.h>
int main(){
 int x;
 for (x = 1; x <= 5; x++){
 printf("x: %d\n", x);
 }
 
 return 0;
}

Вывод

Когда вы запустите этот код, он выдаст следующий результат –

x: 1
x: 2
x: 3
x: 4
x: 5

Язык C

  1. С# против. C++:в чем разница между C# и C++?
  2. C Вход Выход (ввод/вывод)
  3. Функция free() в библиотеке C:как использовать? Учитесь на примере
  4. Учетная запись Microsoft:безопасный доступ и управление
  5. С - Принятие решений
  6. Настройка среды C++
  7. Базовый ввод/вывод C++:пример Cout, Cin, Cerr
  8. C — заголовочные файлы
  9. Указатели и массивы C++
  10. C — указатели