Назначение значений нескольким переменным в одной строке совершенно нормально и допускается языком программирования C.
Однако использование этого стиля обычно не рекомендуется, поскольку оно может вызывать нежелательные побочные эффекты в в некоторых случаях.
Ожидаемое математическое уравнение X = Y = Z может быть:
Y = Z и X = Z (IE, присвоить значение Z X и Y)
Но C язык обрабатывает несколько назначений как цепочку, например:
В C, "X = Y = Z " означает, что значение Z должно быть сначала присвоено Y, а затем значение Y должно быть присвоено X.
Вот пример программы, чтобы увидеть, как несколько заданий в одной строке:
#include <stdio.h>
int main() {
int n;
int X, Y, Z;
printf("Enter an integer: ");
scanf("%d", &n);
printf("You entered: %d\n", n);
printf("Performing multiple assignments:\n X = Y = Z = n++ \n");
X = Y = Z = n++;
printf("n = %d\n", n);
printf("X = %d \n", X);
printf("Y = %d \n", Y);
printf("Z = %d \n", Z);
return 0;
}
Вывод:
Enter an integer: 100
You entered: 100
Performing multiple assignments:
X = Y = Z = n++
n = 101
X = 100
Y = 100
Z = 100
Указывает на примечание в приведенном выше примере:
Строка X = Y = Z = n ++ была обработана так:
Шаг 1: Присвойте значение n (100) Z
Шаг 2: Увеличение значения n (n становится 101)
Шаг 3: Назначение значения Z для Y (Y становится 100)
Шаг 4: Назначьте значение Y для X (X становится 100)
Вывод:
«Несколько назначений в одной строке» - это поддерживаемый стиль. Это имеет свои преимущества.
Однако, если программист не знает о последовательности операций, включенных в оператор множественных присваиваний, то это может привести к несоответствию между ожиданием человека, который читает программу, и фактическим Результат исполнения.
Чтобы избежать этого сценария, несколько назначений не рекомендуется.