Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на C / C++

Выпуск № 232
от 12.04.2003, 20:40

Администратор:
Имя: Nick.Box
URL: Информационный ресурс
ICQ: 365124
[censored], [censored]
О рассылке:
Задано вопросов: 693
Отправлено ответов: 1525
Активность: 220.0 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Yuri Gordienko
Статус: Опытный
Общий рейтинг: 114.24
[Подробней >>]
Ramzes
Статус: Опытный
Общий рейтинг: 129.64
URL: :))
[Подробней >>]
Morgion
Статус: Начальный
Общий рейтинг: 120.68
[Подробней >>]
 
Dzik
Статус: Профессиональный
Общий рейтинг: 113.99
URL: Разработка игрушек
[Подробней >>]
Avl2k
Статус: Опытный
Общий рейтинг: 122.46
[Подробней >>]
PL
Статус: Опытный
Общий рейтинг: 113.79
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 683. Здравствуйте. Вы конечно будете ругаться, но пожалуйста ответте... Например, есть такой кусочек кода... (ответов: 6)
Вопрос № 684. Эксперты, нигде не нашел доков или книг по программированию на C(unix) под mysql и под web на тех же... (ответов: 2)

Вопросов: 2, ответов: 8


 Вопрос № 683

Здравствуйте.
Вы конечно будете ругаться, но пожалуйста ответте...
Например, есть такой кусочек кода
------------
/*...*/
unsigned short int * pBuf;
*pBuf++;
/*...*/
------------
не подскажете случаем к чему именно применяется оператор ++??? В смысле что мы здесь увеличиваем, сам адрес на который ссылается указатель, или же то на что он ссылается??? Короче говоря, будет запись *pBuf++ эквивалентна записи *(pBuf++) или же записи (*pBuf)++???
Благодарю за внимание... спасибо.



Вопрос отправлен: 08.04.2003, 23:02
Отправитель: ToBeOrNot

[Следующий вопрос >>] [Список вопросов]

Отвечает Yuri Gordienko

Добрый день, ToBeOrNot!
В случаях, когда сомневаешься - используй явно скобки(когда не сомневаешься, для подобных случаев, также используй, т.к. могут сомневаться компиляторы).
Удачи


Ответ отправлен: 09.04.2003, 18:11
Отправитель: Yuri Gordienko


Отвечает Ramzes

Приветствую Вас, ToBeOrNot!
Имеем 3 варианта:
1. int a = *pBuf++;
2. int a = *(pBuf++);
3. int a = (*pBuf)++;
1. Переменной а присваивается содержимое памяти, на которую указывает pBuf, т.к приоритет операции * больше приоритета ++, и после этого значени УКАЗАТЕЛЯ увеличивается на 1, то есть + 2 байта.
2. то же, что и в предыдущем случае.
3.Переменной а присваивается содержимое памяти, на которую указывает pBuf, и потом содержимое памяти, на которую указывает пБуф увеличивается на 1;

Ответ отправлен: 09.04.2003, 13:32
Отправитель: Ramzes


Отвечает Morgion

Добрый день, ToBeOrNot!
А самому проверить слабо?
На самом деле всё просто- операция ++ имеет больший приоритет, чем *, поэтому *pBuff++ это тоже самое, что и *(pBuff++).

Ответ отправлен: 09.04.2003, 20:15
Отправитель: Morgion


Отвечает Dzik

Доброе время суток, ToBeOrNot!
Эта запись эквивалентна *(pBuf++)

Ответ отправлен: 09.04.2003, 07:02
Отправитель: Dzik


Отвечает Avl2k

Доброе время суток, ToBeOrNot!
Поскольку оператор ++ имеет более высокий приоритет, чем оператор *, то запись эквивалентна *(pBuf++), что фактически значит:
1. t = pBuf;
2. pBuf = pBuf + 1
3. *t
С уважением, Avl2k.

Ответ отправлен: 09.04.2003, 10:17
Отправитель: Avl2k


Отвечает PL

Доброе время суток, ToBeOrNot!
Конечно же увеличивается адресс хранящийся в указателе, а за тем он разыменовывается и возвращает значение по этому адресу. Вот примерчик
int *p, a[5] = { 1,2,3,4,5};
p = &a[2];
cout<<*p<*p++;
cout<<*p<Сначала выведется 3 а затем 4, а происходит так потому что приоритет операции инкремента выше операции разыменовывания указателя. По этому *р++ = *(р++)

Ответ отправлен: 09.04.2003, 06:25
Отправитель: PL


 Вопрос № 684

Эксперты, нигде не нашел доков или книг по программированию
на C(unix) под mysql и под web на тех же любимых сях. Может линки кините, или сразу книги на почту. Только не надо говорить, что под веб лучше С не использовать:)



Вопрос отправлен: 09.04.2003, 11:33
Отправитель: stranger (stranger@istu.edu)

[Следующий вопрос >>] [Список вопросов]

Отвечает Avl2k

Доброе время суток, stranger!
Доки по mysql лежат на сайте www.mysql.com. Там же лежат API для C и C++, а также примеры их использования. IMHO удобнее использовать API для C++ (он же MySQL++), хотя он и несколько сложнее. По поводу программирования веб на C никакого особого API не нужно, необходимо знание соответствующих протоколов (HTTP, FTP и т.д.). Если не хочется все писать ручками, можно найти либы для этих протоколов или взять куски исходников PHP(www.php.net) или Perl(www.perl.com).
С уважением, Avl2k.

Ответ отправлен: 09.04.2003, 12:00
Отправитель: Avl2k


Отвечает Yuri Gordienko

Приветствую Вас, stranger!
А что значит "на C(unix) под mysql и под web"? Под тот-же MySql в составе дистрибутива идут библиотеки работы с базой данных, - читаешь документацию по интерфейсу и используешь.
Удачи.


Ответ отправлен: 09.04.2003, 18:08
Отправитель: Yuri Gordienko



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (36)
C / C++ (27)
Perl (6)
Delphi (16)
Pascal (21)
Basic / VBA (10)
Java / JavaScript (9)
PHP (4)
MySQL / MSSQL (5)
Пользователю
Windows 95/98/Me (29)
Windows NT/2000/XP (23)
"Железо" (26)
Поиск информации (14)
Администратору
Windows NT/2000/XP (11)
Linux / Unix (12)
Юристу
Гражданское право (9)
Семейное право (5)
Трудовое право (5)
КоАП (6)

Отправить вопрос всем экспертам выбранной рассылки.




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное