Вопрос хоть и распространённый, но всё же задам..
Чем отличаются переменные, указатели и ссылки? Что из них лучше экономит память? Могут ли указатели сохранять память как в файле: например, человек ввёл число, а в следующий раз зашёл в программу и это число уже присвоено какой то переменной? Если да, то как это выглядит? И что когда лучше использовать? Помогите разобраться... И про текст: чтоб выводился русский текст я пишу
#include
#include
using namespace std;
setlocale(LC_ALL,"Russian");
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
потом ещё в свойствах окна шрифт меняю, это помогает, но расположение файла до сих пор написано непонятными буквами, нельзя это сделать как то попроще, например, кодировку где то поменять, как на php в notepade?
переменные это непосретвенно значения в памяти а указатели это ссылки на эти значения в памяти т. е ты когда обращается через указатель ты ссылаешься на это значение а если переменную то берешь на прямую. это очень полезная вещь
Поменять кодировку в блокноте можно, она называется cp866. Переменная - именованная область памяти, способная хранить значение. Указатель - переменная, хранящая адрес в памяти, где может храниться значение. Ссылка - указатель, который очень хочет быть переменной, то есть синтаксически работает как переменная, но по сути является указателем. Работа с указателями и ссылками нужна не для экономии памяти, а для более свободного манипулирования ею. Например, по одному указателю можно именовать целый массив. А еще можно выделять и освобождать память не в области видимости переменной, а вообще когда захочется. А еще память, на которую ссылается указатель, сама может быть указателем, что открывает безграничные возможности для создания собственных структур данных. Недостаток указателей в том, что они текут, то есть вам нужно вручную высвобождать занятую ими память, что вы можете забыть сделать. Кроме того, каждый указатель весит 4 байта на x86 системе и 8 на x64. Поэтому невыгодно каждый int вручную в память пихать.