Каждый тип данных имеет различный объем данных, который выделяется для хранения этого типа данных, и поэтому у нас есть ограничения на то, насколько большим, например, может быть целое число (от -2 147 483 648 до 2 147 483 647, aмаксимум 32 бита).Другие типы данных, такие как числа с плавающей запятой и двойные числа, имеют разные значения, где число с плавающей запятой - это 32-разрядное значение с плавающей запятой, а значение типа double - 64-разрядное значение с плавающей запятой с двойной точностью.Вы измените B, это изменит A, короткий ответ - нет.Что вы делаете, когда определяете переменную A, равную B, вы изменяете значение A на равное B. Другой пример, если у вас есть приведенный ниже код (любой язык OO), что вы делаетесоздает место в памяти со значением ноль (и выделенным пространством 32 бита), и вы создаете вторую новую переменную со значением переменной a, что равно нулю. edit: вторая переменная полностью независима от первой.
int a = 0;
int b = a;
Есть такая вещь, когда одна переменная может быть изменена путем изменения исходного значения, и это называется указателем,Указатель - это специальный маленький инструмент, который хранит информацию о том, где в памяти хранятся данные, иначе называемый адресом памяти.Взгляните на код ниже.
Person* person = new Person();
int* age = person.age;
Здесь я объявляю два указателя, один из которых является ссылкой на объект, для которого создается экземпляр, а другой - ссылкой на поле в этом объекте.,Указатель хранит информацию о том, где данные хранятся в памяти (адрес памяти).Исходя из этого, всякий раз, когда используется указатель, он действует как указатель на этот адрес памяти, к которому мы будем иметь доступ.Из-за этого он не является на самом деле переменной, а действует как листинг в «оглавлении», где вы можете использовать его для поиска фрагмента данных.Поскольку он не хранит данные напрямую, а просто ссылается на хранимые данные, при непосредственном изменении возраста человека с person.age он также обновляет данные в памяти, ноадрес остается прежним и будет отражать указатель.
Что касается вопроса сбора мусора, то в языке, таком как Java или C #, данные собираются только в том случае, если нет больше ссылок на этот фрагментИнформация.Однако в таком языке, как C ++, сборка мусора автоматически не выполняется, и вы должны удалить указатели, созданные с помощью ключевого слова delete .
В любом случае, надеюсь, это поможет!