Рубрики

Операции над структурными переменными в C

В C единственной операцией, которая может быть применена к переменным структуры, является присваивание. Любая другая операция (например, проверка на равенство) недопустима для структурных переменных.
Например, программа 1 работает без каких-либо ошибок, а программа 2 не скомпилируется.

Программа 1

#include <stdio.h>

  

struct Point {

  int x;

  int y;

};

  

int main()

{

  struct Point p1 = {10, 20};

  struct Point p2 = p1; // работает: содержимое p1 копируется в p2

  printf(" p2.x = %d, p2.y = %d", p2.x, p2.y);

  getchar();

  return 0;

}

Программа 2

#include <stdio.h>

  

struct Point {

  int x;

  int y;

};

  

int main()

{

  struct Point p1 = {10, 20};

  struct Point p2 = p1; // работает: содержимое p1 копируется в p2

  if (p1 == p2)  // ошибка компилятора: невозможно выполнить проверку на равенство

                  // целые структуры

  {

    printf("p1 and p2 are same ");

  }

  getchar();

  return 0;

}

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

Рекомендуемые посты:

Операции над структурными переменными в C

0.00 (0%) 0 votes