Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 июля!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Возможности языков семейства Си по истине безграничны, однако, в этой свободе кроются и недостатки: всегда нужно программисту держать ухо востро и контроллировать "переполнение буфера", чтобы потом программа не вылетала в "синий экран" на массе разнообразных версий Windows и железа у пользователей. Те же крэкеры и реверсеры специально ищут в коде программ на Си уязвимости, куда можно подсадить любой вирусный код, об этом более подробно автор рассказывал в своём видеокурсе здесь. Я там многое узнал и теперь мой код стал значительно более безопасный.

Основы Visual C++
Урок 13. Передача параметров функции по ссылке и по значению

В функцию параметры могут передаваться как по значению, так и по ссылке.

При передаче параметров по значению они при выходе из функции не изменятся. Например, следующий фрагмент напечатет на экране 1 и 3:

...
 
 int func(int k){
 
     k*=2;
 
     return k;
 
 }
 
 void main(){
 
     int z=1, y=3, k;
 
     k=func(z)+func(y);
 
     cout<<z<<" "<<y;
 
 ...

При передаче же параметров по ссылке прив выходе из функции из значения могут измениться. Как, например, в следующем фрагменте:

...
 
 int func(int &k){
 
     k*=2;
 
     return k;
 
 }
 
 void main(){
 
     int z=1, y=3, k;
 
     k=func(z)+func(y);
 
     cout<<z<<" "<<y;
 
 ...

После его выполнения на экране напечатается 2 и 6.

Разница между двумя этими фрагментами весьма невелика - всего 1 символ амперсанда (&) в строке

...
 
 int func(int &k){
 
 ...

Еще один классический пример на эту тему - это функция, которая меняет значения своих параметров:

void func(int &n, int &m){
 
     int tmp=n;
 
     n=m;
 
     m=tmp;
 
 }

После выполнения такой функции значения её параметров поменяются местами.



<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS