|
|
|
Помогите разобраться
|
|||
|---|---|---|---|
|
#18+
Здраствуйте. Читаю интересную книгу тов. Страуструпа про С++. Почти осилил 1-ю главу(книга трудна для меня). Трудности с указателями. А точнее приблизительно с таким: int& elem(int i) { return v ; } или ещё int& operator[](int); Интересует перевод этих строк на русско-абстрактный. Понимаю что, например: int& something, здесь something - ссылка. А что такое ссылка(к сожалению толковых книг нет). И еще интересует почему: int& something; и int &something; для компилятора не отличаются. Если не сложно - мыльте wehicla@narod.ru. До свидания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2006, 17:53 |
|
||
|
Помогите разобраться
|
|||
|---|---|---|---|
|
#18+
Имеем функцию. int sub( int a ) { ... } передача по значению: предположим есть переменная int i имеющая значение 10. передача по значению buf = sub( a ); равносильна buf = sub( 10 ); также стоит заметить, что переменную a внутри sub изменить никак нельзя. например: вернуть число, увеличенное в 4 раза: Код: plaintext 1. 2. 3. 4. 5. Код: plaintext 1. buf = 40; i = 10; Передача по адресу. вы передате теперь не значение переменной, а адрес, где она находится. пусть есть функция int sub( int* a ) int i = 10; buf = sub( &i ); равносильна buf = sub( <адрес переменной i> ); также стоит заметить, что переменную a внутри sub изменить можно, просто записав по адресу какое-нибудь число. например: вернуть число, увеличенное в 4 раза, при этом пожелить агрумент на 2: Код: plaintext 1. 2. 3. 4. 5. Код: plaintext 1. buf = 40; i = 5; Передача по ссылке: вы пишете передачу, будто передача идет по ссылке, а фактически передача идет по указателю: Код: plaintext 1. 2. 3. 4. 5. Код: plaintext 1. buf = 40; i = 5; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2006, 20:07 |
|
||
|
Помогите разобраться
|
|||
|---|---|---|---|
|
#18+
Ссылка - это разименованный константный указатель без возможности проведения с ним операций адресной арифметики (потому что он константный). (Константный - в том смысле, что АДРЕС поменяться не может, а не в том смысле, что не может поменяться содержимое по этому адресу.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2006, 13:17 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=334&tid=2030477]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
23ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 338ms |

| 0 / 0 |
