Другие языки программирования и технологии

Указатели в С++ Для чего нужны? Объясните понятным языком. если можно с примерами, пожалуйста.

пример1
у нас есть некая функция которая производит складывание двух параметров и выдаёт сумму в третий параметр.
void Symma(int a,int b, int symma);
{
summa = a+b;
}
использовать в программе её будем следующим образом

int a=10;
int b=30;
int Su=0;

Symma(a,b,Su)
cout<<Su;

в результате мы получим Su=0;
а почему? да потому что происходит копирование параметра в функцию и на исходные значения это не влияет. это лечиться указателем. В функцию передаётся не параметр а указатеь на параметр и функция работает с параметром который хранится под данным указателем
void Symma(int a,int b,int *Summa)
{
&Summa=a+b;
}

пример 2
у нас есть некая функция которая работает со структурой и производит какие-то вычисления
struct Massiv
{
float a,b,afg,tyh,f,uj,ku,gh, // и т. д.
}
ште MultiMassiv(Massiv a)
всё работает. Но что происходит в ядре происходит полное копирование всех элементов структуры в функцию. А если структура большая то это привидёт к большим потерям производительности. поэтому используют указатель структуру который в отличии от самой структуры значительно проще копируется.
Мовлди Шаманов
Мовлди Шаманов
1 163
Лучший ответ
Слышь Чо? А почему так:

void Symma(int a,int b,int *Summa)
{
&Summa=a+b;
}

а не так:

void Symma(int a,int b,int *Summa)
{
*Summa=a+b;
}
?

Мне казалось, что символ & должен здесь обозначать адрес самого указателя. А на самом деле он позволяет работать со значением, записанным по адресу, который содержится в указателе?
Извините, что встреваю в чужой вопрос. Просто тема указатели для меня тоже была сложной, и тут выясняется, что у меня в голове что-то неправильно уложилось.
Учебников по C++ в сети полно. Пожалуйста, приведи фрагмент из учебника, который ты прочитала, и спроси, что именно тебе там непонятно. А то мы ведь не знаем, какой язык для тебя понятный - может, тебе надо с 1-го класса про натуральные числа объяснять...
Sayan Sain
Sayan Sain
74 133