LINUX.ORG.RU

История изменений

Исправление Twissel, (текущая версия) :

Раз ты выбрал такой способ изучения, то для закрепления темы тот же код с передачей по ссылке.

#include <stdio.h>

struct AnyStruct { int x, y; };

void f1(struct AnyStruct* p);
void f2(struct AnyStruct* v);

void f1(struct AnyStruct* p)
{
  printf("f1: %i,%i\n", p->x, p->y);
  f2(p); // Здесь передаём уже по ссылке.
  printf("f1: %i,%i\n", p->x, p->y);
}

void f2(struct AnyStruct* v)
{
  v->x++; v->y++; // Изменяем поля структуры.
  printf("f2: %i,%i\n", v->x, v->y);
}

int main()
{
  struct AnyStruct a={1, 1};
  f1(&a); // Здесь передаём по ссылке.
  return 0;
}

Выражение AnyStruct* v читается как переменная v есть указатель на структуру типа AnyStruct

Вывод

f1: 1,1
f2: 2,2
f1: 2,2

Исправление Twissel, :

Раз ты выбрал такой вариант, то для закрепления темы тот же код с передачей по ссылке.

#include <stdio.h>

struct AnyStruct { int x, y; };

void f1(struct AnyStruct* p);
void f2(struct AnyStruct* v);

void f1(struct AnyStruct* p)
{
  printf("f1: %i,%i\n", p->x, p->y);
  f2(p); // Здесь передаём уже по ссылке.
  printf("f1: %i,%i\n", p->x, p->y);
}

void f2(struct AnyStruct* v)
{
  v->x++; v->y++; // Изменяем поля структуры.
  printf("f2: %i,%i\n", v->x, v->y);
}

int main()
{
  struct AnyStruct a={1, 1};
  f1(&a); // Здесь передаём по ссылке.
  return 0;
}

Выражение AnyStruct* v читается как переменная v есть указатель на структуру типа AnyStruct

Вывод

f1: 1,1
f2: 2,2
f1: 2,2

Исходная версия Twissel, :

Раз ты выбрал такой вариант, то для закрепления темы тот же код с передачей по ссылке.

#include <stdio.h>

struct AnyStruct { int x, y; };

void f1(struct AnyStruct* p);
void f2(struct AnyStruct* v);

void f1(struct AnyStruct* p)
{
  printf("f1: %i,%i\n", p->x, p->y);
  f2(p); // Здесь передаём уже по ссылке.
  printf("f1: %i,%i\n", p->x, p->y);
}

void f2(struct AnyStruct* v)
{
  v->x++; v->y++; // Изменяем поля структуры.
  printf("f2: %i,%i\n", v->x, v->y);
}

int main()
{
  struct AnyStruct a={1, 1};
  f1(&a); // Здесь передаём по ссылке.
  return 0;
}

Выражение AnyStruct* v читается как переменная v есть указатель на структуру типа AnyStruct