Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
Dimmak
4 / 4 / 0
Регистрация: 10.12.2012
Сообщений: 173
#1

a=*b Что это значит? - C++

26.01.2013, 15:58. Просмотров 1560. Ответов 30
Метки нет (Все метки)

Подскажите пожалуйста!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2013, 15:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос a=*b Что это значит? (C++):

что это значит? - C++
в задании есть такой фрагмент if(!(num%div)) что это означает?

что это значит? - C++
Помогите, пожалуйста, разобраться в данном фрагменте программы) char* rus(const char* text) {char *bufRus=new char; ...

Что это значит? - C++
Что значит условие (!a)?В каком случае будет выполняться правда? if(!a) { // что угодно } else { // что угодно }

Что значит это условие - C++
Вот собственно код: if ( ( words = (char**)realloc(words, sizeof(char*) * (cnt + 1)) ) == NULL )

Что это значит if (x&1) ? - C++
основным вопросом есть if (x&1) что это за условия? и что это? x>>1. какая роль в коде? unsigned long long m_recursive (unsigned long...

что значит !a и a%=(c+10) и как это записать? - C++
что значит !a и a%=(c+10) и как это записать? заранее благодарен...

30
Somebody
2792 / 1603 / 148
Регистрация: 03.12.2007
Сообщений: 4,200
Завершенные тесты: 3
26.01.2013, 16:06 #2
Тут два оператора.
C++
1
a = (*b)
В a записывается то, что по адресу b. (Если не считать перегрузку операторов.)
0
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 543
26.01.2013, 16:06 #3
присвоение к переменной 'a' значение адреса переменной 'b'
0
HighPredator
5599 / 1913 / 357
Регистрация: 10.12.2010
Сообщений: 5,567
Записей в блоге: 3
26.01.2013, 16:08 #4
Afflicted, вы спутали с a*=b.
1
Evg
26.01.2013, 16:16
  #5

Не по теме:

Цитата Сообщение от HighPredator Посмотреть сообщение
Afflicted, вы спутали с a*=b.
Вообще-то он спутал с "a = &b"

0
Somebody
26.01.2013, 16:21
  #6

Не по теме:

Цитата Сообщение от Evg Посмотреть сообщение

Не по теме:

Вообще-то он спутал с "a = &b"

Судя по времени редактирования того поста, с чем только уже не успел спутать...

2
Evg
26.01.2013, 16:22
  #7

Не по теме:

Цитата Сообщение от Somebody Посмотреть сообщение
Судя по времени редактирования того поста, с чем только уже не успел спутать...
Едрить...

0
Dimmak
4 / 4 / 0
Регистрация: 10.12.2012
Сообщений: 173
26.01.2013, 16:23  [ТС] #8
Я ничего не путаю. Просто пытаюсь разобраться в коде:
C++
1
2
3
4
5
        if (i < j) {
            p1 = Buffer+i; p2 = Buffer+j;
            temp = *p1; *(p1++) = *p2;
            *(p2++) = temp; temp = *p1;
            *p1 = *p2; *p2 = temp;
Помогите разобраться!
0
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
26.01.2013, 16:54 #9

Не по теме:

Dimmak, это...магия



Добавлено через 1 минуту
К примеру, зачем писать вот так:
*(p1++) = *p2;
я не понимаю
0
Kuzia domovenok
2119 / 1949 / 192
Регистрация: 25.03.2012
Сообщений: 6,755
Записей в блоге: 1
26.01.2013, 16:54 #10
он обменивает пары элементов массива Buffer
Элементы с индексами i и i+1 ставит на места с индексами j и j+1 соответственно и наоборот.
возможно, код был бы понятнее, еслиб не заставляли меня вспоминать, что возвращает оператор постинкремента, а тупо написали бы
C++
1
2
3
4
5
if (i < j) {
            p1 = Buffer+i; p2 = Buffer+j;
            temp = *p1; *p1= *p2; p1++;
            *p2 = temp; temp = *p1; p2++;
            *p1 = *p2; *p2 = temp;
А ещё лучше
C++
1
2
3
4
5
6
7
if (i < j) {
            temp = Buffer[i]; 
            Buffer[i]= Buffer[j]; 
            Buffer[j] = temp; 
            temp = Buffer[i+1]; 
            Buffer[i+1]= Buffer[j+1]; 
            Buffer[j+1] = temp;
Или вообще
C++
1
2
3
if (i < j) {
            Swap(Buffer[i], Buffer[j]);
            Swap(Buffer[i+1], Buffer[j+1]);
Т.к. адресная арифметика здесь как телеге пятое колесо
1
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
26.01.2013, 16:57 #11
Kuzia domovenok, проблема инкрементов в том, что разные компиляторы воспринимают их немного по-разному.
Я проверял на 2х разных компиляторах одно и то же выражение, оно выдавало разные результаты.
0
Kuzia domovenok
26.01.2013, 17:00
  #12

Не по теме:

ой-ой

0
Somebody
2792 / 1603 / 148
Регистрация: 03.12.2007
Сообщений: 4,200
Завершенные тесты: 3
26.01.2013, 17:02 #13
Цитата Сообщение от Kgfq Посмотреть сообщение
проблема инкрементов в том, что разные компиляторы воспринимают их немного по-разному.
Это не проблема инкрементов, а проблема их неправильного использования...
0
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
26.01.2013, 17:06 #14
Somebody, а как вы будете его правильно использовать, если компиляторы даже решить не могут как правильно?)
0
Kuzia domovenok
2119 / 1949 / 192
Регистрация: 25.03.2012
Сообщений: 6,755
Записей в блоге: 1
26.01.2013, 17:40 #15
Цитата Сообщение от Kgfq Посмотреть сообщение
а как вы будете его правильно использовать, если компиляторы даже решить не могут как правильно?)
Во-первых, ставить скобки, расписывать в несколько действий. Во-вторых, Есть понятие "точка следования", и не нужно производить следующую операцию с переменной, пока не пройдена точка следования, чтоб не получать непредсказуемый результат.
0
26.01.2013, 17:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2013, 17:40
Привет! Вот еще темы с ответами:

Не могу понять, что это значит: while(i<10/2) - C++
/*обращение массива*/ #include &lt;stdio.h&gt; main() { int p,i=0; static a={10,11,12,13,14, 15,16,17,18,19}; while(i&lt;10/2) { ...

Что значит это строка кода? - C++
int _tmain(int argc, _TCHAR* argv) Объясните пожалуйста что значит этот участок кода, или дайте ссылку на какой либо ресурс для...

Что это значит: *(void**)ReturnValue) = hHeap; ? - C++
Вот честно, не могу понять что значит вторая строчка кода: void* ReturnValue = (void*) HeapAlloc((HANDLE) hHeap,...

Ссылка как параметр шаблона. Что это значит? - C++
Увидел в данной теме http://www.cyberforum.ru/cpp-beginners/thread1900008.html что шаблонный тип можно указать как ссылку. Судя по тесту...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.