|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.05.2017, 16:12 | #1 |
Пользователь
Регистрация: 16.04.2016
Сообщений: 41
|
Передача строковой переменной.
Всем привет, такая программа:
Код:
Поясните как работает эта программа почему выдаёт результат "abcd qw"? Последний раз редактировалось max29; 02.05.2017 в 16:40. |
02.05.2017, 17:34 | #2 |
Форумчанин
Регистрация: 07.02.2013
Сообщений: 267
|
Вероятно (точно), потому что параметры передаются по значению. Классика.
Μολὼν λαβέ
|
02.05.2017, 17:47 | #3 |
Пользователь
Регистрация: 16.04.2016
Сообщений: 41
|
Поясните плиз.
|
02.05.2017, 18:05 | #4 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Массив тут не причем.
Код:
Можно считать, что в переменной хранится указатель/ссылка (адрес) на строку и в функцию передается копия этого значения адреса. (а может быть даже так и есть) Вы ж не удивляетесь Код:
В некоторых языках можно передавать переменную по ссылке (ref в C#, & в С++), тогда бы было так, как вы хотели. ЗЫ имена переменных в Java обычно пишутся с маленькой буквы (camelCase). http://www.oracle.com/technetwork/ja...oc-136057.html
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 02.05.2017 в 18:09. |
02.05.2017, 18:08 | #5 |
Форумчанин
Регистрация: 07.02.2013
Сообщений: 267
|
RTFM, не?
В java все аргументы передаются по значению, так что внутри doSomething1 Вы работаете с копией строки X, которая за пределами метода не существует. Так что внутри метода X == "qw", а снаружи X == "abcd" Во втором случае передается ссылка на некоторый объект, аналогично, в doSomething2 Вы работаете с копией ссылки, разница в том, что меняется не сама ссылка, а данные, на которые она указывает. Возможно, в java это какими-нибудь другими терминами наз-ся, я не знаю. Но суть такая.
Μολὼν λαβέ
|
02.05.2017, 19:19 | #6 |
Пользователь
Регистрация: 16.04.2016
Сообщений: 41
|
Благодарю всех за ответы!(Вроде-бы понятно всё)
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Чтение строковой переменной. | Поллукс | Общие вопросы Delphi | 34 | 17.10.2015 00:15 |
Проблема со строковой переменной | MisterDie | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 27.02.2013 21:43 |
Занесение содержимого строковой переменной в поток | DannerDOS | Общие вопросы Delphi | 5 | 06.05.2010 13:28 |
Как удалить часть строковой переменной | Oooleg | Microsoft Office Excel | 1 | 21.07.2009 16:20 |
TMemoryStream присвоить строковой переменной | inndim | Общие вопросы Delphi | 3 | 06.05.2009 11:36 |