Форум: "Начинающим";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];
ВнизЕще вопросик по Символам Найти похожие ветки
← →
Steep © (2006-10-20 10:26) [0]Не подскажете что это за символы и зачем они нужны
^ @
Часто вижу их, но зачем не знаю...
← →
Zeqfreed © (2006-10-20 10:29) [1]Если не знаешь, лучше не трогай :)
@ - унарный оператор взятия адреса.
^ - разыменование указателя/объявление типа-указателя.
← →
StriderMan © (2006-10-20 10:32) [2]
> Zeqfreed © (20.10.06 10:29) [1]
> ^ - разыменование указателя/объявление типа-указателя.
еще кажется в константах так можно степень указать.
← →
DrPass © (2006-10-20 10:39) [3]
> Не подскажете что это за символы и зачем они нужны
Смотря в каком контексте. Если @#$, то это не обязательно взятие адреса.
> еще кажется в константах так можно степень указать
Если и можно, то не в Паскале. Экспоненциальная часть вещественных констант обозначается буквой E
← →
Steep © (2006-10-20 10:41) [4]
> Экспоненциальная часть вещественных констант обозначается
> буквой E
бррррррррр ;)
а можете написать про все попроще..
← →
SergKon © (2006-10-20 10:55) [5]1.2E+15
← →
Anatoly Podgoretsky © (2006-10-20 12:19) [6]Со вторым все одназначно, это оператор взятия адреса, а вот первый настоящий многостаточник, но чаще всего разъименование.
Ответ зависит от того, в каком контексте ты это встречал.
← →
Джо © (2006-10-20 12:51) [7]> [4] Steep © (20.10.06 10:41)
> бррррррррр ;)
> а можете написать про все попроще..
Купи книгу по языку Делфи. Читай. И да воздастся :)
← →
guav © (2006-10-20 19:44) [8]
> [6] Anatoly Podgoretsky © (20.10.06 12:19)
> Со вторым все одназначно, это оператор взятия адреса,
Не всегда :-)function EnterReaderModeHelper(Wnd: HWND): BOOL; stdcall;
var EnterReaderModeHelper: function(Wnd: HWND): BOOL; stdcall;
begin
@EnterReaderModeHelper := GetProcAddress(
GetModuleHandle(user32), "EnterReaderModeHelper");
if Assigned(EnterReaderModeHelper) then
Result := EnterReaderModeHelper(Wnd)
else
Result := False;
end;
Здесь он не берёт адрес переменной EnterReaderModeHelper.
← →
Ketmar © (2006-10-20 19:49) [9]>[8] guav(c) 20-Oct-2006, 19:44
>Здесь он не берёт адрес переменной EnterReaderModeHelper.
да? точно-точно? а зачем тогда оно там, и что оно там делает?
← →
Ученик чародея. (2006-10-20 19:59) [10]>>http://diamail.com.ua/cgi-bin/annot.cgi?id=1015
И только после этого садится за Delphi с книжкой кого-то более серьезного.
← →
guav © (2006-10-20 20:00) [11]
> а зачем тогда оно там, и что оно там делает?
Да незачем ! Убрал и всё равно работает.
Оно просто указывает применение указателя на функцию как указатель а не как вызов функции.
← →
Ketmar © (2006-10-20 20:09) [12]>[11] guav(c) 20-Oct-2006, 20:00
>Оно просто указывает применение указателя на функцию как
>указатель а не как вызов функции.
фраза ужасная. но "арименение как указатель" -- это разве (в данном случае) не взятие адреса?
← →
guav © (2006-10-20 20:26) [13]
> но "арименение как указатель" -- это разве (в данном случае)
> не взятие адреса?
Нет.
0. Без этого оператора код компилится и работает точно так же.
1. Что бы по-твоему означало выражение со взятием адреса в левой части оператора присвоения ?
2. Зачем по-товему здесь брать адрес переменной-указателя, если требуется изменить то куда указатель указывает, т.е. значение указателя.
> фраза ужасная.
Да и код не шибко хороший, особенно после того как убрать собаку. Такой же запутанный :-)
← →
Ketmar © (2006-10-20 21:08) [14]>[13] guav(c) 20-Oct-2006, 20:26
>0. Без этого оператора код компилится и работает точно так
>же.
syntactic sugar. такой же, как необязательность "^".
>1. Что бы по-твоему означало выражение со взятием адреса в
>левой части оператора присвоения ?
таки запись по взятому адресу, ага?
>2. Зачем по-товему здесь брать адрес переменной-указателя,
>если требуется изменить то куда указатель указывает, т.е.
>значение указателя.
ты можешь не верить, но запись по "адресу переменной-указателя" модифицирует эту переменную.
← →
TUser © (2006-10-20 22:26) [15]А все-таки, что подразумевал Анатолий? В контексте [8], имхо, Ketmar прав.
← →
guav © (2006-10-20 22:29) [16]
> [14] Ketmar © (20.10.06 21:08)
> таки запись по взятому адресу, ага?
Если запись по взятому адресу, следовало бы разыменование, а т.к. его нет получается запись взятого адреса. Сначала его взяли, а потом записали вместо взятого что-то ещё - спрашивается зачем брали.
Нет, @ здесь не взятие адреса, а приведение типа.
← →
Пользователь (2006-10-21 12:07) [17]The @ operator returns the address of a variable, or of a function, procedure, or method; that is, @ constructs a pointer to its operand. For more information about pointers, see Pointers and pointer types. The following rules apply to @.
- If X is a variable, @X returns the address of X. (Special rules apply when X is a procedural variable; see Procedural types in statements and expressions.) The type of @X is Pointer if the default {$T–} compiler directive is in effect. In the {$T+} state, @X is of type ^T, where T is the type of X.
- If F is a routine (a function or procedure), @F returns F’s entry point. The type of @F is always Pointer.
- When @ is applied to a method defined in a class, the method identifier must be qualified with the class name. For example, @TMyClass.DoSomething, points to the DoSomething method of TMyClass. For more information about classes and methods, see Classes and objects.
← →
Ketmar © (2006-10-21 17:57) [18]>[17] Пользователь 21-Oct-2006, 12:07
изыди. не мешай флудить.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.075 c