Tuesday, June 5, 2012

Передача аргумента в функцию

Есть три основных способа передачи аргумента:
1)By value
2)By reference
3)By pointer

By value:
Аргумент копируется в локальный параметр.
By reference:
Передается адрес аргумента. Если const int& variable то значение variable нельзя модифицировать.
By pointer:

Четыре способа передать функции указатель:

1)Неконстантный указатель на неконстантные данные - данные можно модифицировать через разыменованный указатель, а сам указатель может быть модифицирован для ссылки на другие данные. Всё без const.

2)Неконстантный указатель на константные данные - это указатель, который можно модифицировать, чтобы он ссылался на любые элементы данных подходящего типа, но данные, на которые он ссылается, не могут быть модифицированы. Пример: void printCharacter(const char*);

3)Константный указатель на неконстантные данные - это указатель, который всегда ссылается на одно и то же место в памяти; данные в этом месте можно модифицировать через указатель. Пример: int * const ptr = fix;

4)Константный указатель на константные данные - Такой указатель всегда указывает на одно и то же место в памяти и находящиеся в этом месте данные нельзя модифицировать. Пример: const int *const ptr = &x;

No comments:

Post a Comment