C - это структурированный, но не объектно-ориентированный язык.Существуют два основных механизма реализации объектов, подобных объектам: структуры данных, называемые Structs с одной стороны и Pointer с другой стороны.Указатель подобен переменным, но создан для ссылки на адрес памяти данного поля.
struct Person {
char name[50];
};
struct Marriage {
struct Person *father; /* fields of type 'pointer to a struct person' */
struct Person *mother;
} marriage;
int main() {
struct Person father = {"Steve"};
marriage.father = &father; /* marriage.father references the memory address of father */
...
}
В отличие от этого, Java - это объектно-ориентированный язык , где, например, объект A ссылается на другой объект B , без необходимости для специального типа указателя , потому что это "указание" происходит неявно.Итак, ваш пример кода на Java будет:
Person father = new Person(); // acts like struct Person
Marriage marriage = new Marriage(); // acts like struct Marriage
marriage.male = father; // marriage.male references ("points to") father memory address