Форум: "Потрепаться";
Текущий архив: 2002.12.05;
Скачать: [xml.tar.bz2];
ВнизОбъясните почему в С++ так... Найти похожие ветки
← →
Anar (2002-11-13 17:25) [0]Я вот про C++ хочу вас кое о чём спросить.
Почему этот код не выдаёт OK, если ввести "a".
char MyChar;
scanf("%s",MyChar);
if (MyChar="a")
{
printf("OK");
}
А этот выдаёт:
char MyChar;
scanf("%s",&MyChar);
if (MyChar="a")
{
printf("OK");
}
зачем нужно ставить & перед переменной?
← →
Игорь Шевченко (2002-11-13 17:35) [1]Учебник почитать, опять же не вредно...
← →
Ag2002 (2002-11-13 17:48) [2]НУ действительно книгу не внимательно читал
← →
Jeer (2002-11-13 17:49) [3]Начни с C--
← →
esu (2002-11-13 19:20) [4]Посмотри что принимает в качестве аргументов scanf...
← →
Marser (2002-11-13 22:43) [5]Амперсанд(&) означает ссылку на адрес переменной.
← →
Anar (2002-11-13 22:49) [6]Да я знаю, но зачем в Си++ чтобы изменить значение переменной необходимо к её адресу обращаться?
← →
Fantasist (2002-11-13 23:02) [7]
> Да я знаю, но зачем в Си++ чтобы изменить значение переменной
> необходимо к её адресу обращаться?
:D :D
А что, в других языках это не так? :)
← →
VictorT (2002-11-13 23:16) [8]
> Да я знаю, но зачем в Си++ чтобы изменить значение переменной
> необходимо к её адресу обращаться?
Подумай, чем отличаются в паскала две переменные в этом обьявлении процедуры:
procedure fun(variable1: int, var variable2: integer)
Вот аналог на Си:
void fun(int variable1, int &variable2)
← →
SV (2002-11-13 23:51) [9]И почему "=" вместо "==" ? ;)
← →
Anar (2002-11-13 23:58) [10]
> VictorT ©
А щас понял. TNX
> SV © (13.11.02 23:51)
Пардон, но все же меня поняли.
← →
p@s (2002-11-14 05:23) [11]Anar
А вот и нифига не понял. В сканф передается не ссылка, а указатель на переменную. Отсюда и необходимость поставить &.
Аналог на Паскале
type PInteger = ^Integer;
...
procedure fun(variable: PInteger)
var i: Integer;
begin
i := variable^;
end;
...
var I: Integer;
fun(@I);
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2002.12.05;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.072 c