Отговори на тема  [ 16 мнения ]  Отиди на страница Предишна  1, 2
C++ подводни камъни (за начинаещи) 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение 
HCL написа:
Е сега вече няма да ми повярвате :lol: , но
Код:
(*pcurrent)++

и
Код:
*pcurrent++;

не дават един и същ резултат. Ако ще увеличавате стойността, която сочи показателя използвайте първото.
А го бях чел преди два-три дни и пак го обърках :?

Компилатора прави това, което му каже програмиста. В първия случай, с израза (*pcurrent) му указваш променлива от някакъв тип, която трябва да се увеличи с 1. Във втория случай, му казваш (с *) вземи стойността на променливата, после нищо не прави с нея, след това увеличи указателя с 1. Втория случай е удобен ако ще обхождаш масив от променливи, като преди всяко инкрементиране на указателя, правиш нещо със стойността, на сочената от него променлива:
Код:
void Function( int value );
int i,array[10];
int *pcurrent = array;
for( i = 0; i < 10; i ++ )
array[i]  = 9 - i;
for( i = 0; i < 10; i ++ ) {
Function( *pcurrent++ );
}


Пон Юли 25, 2005 12:59 pm
Профил WWW
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 16 мнения ]  Отиди на страница Предишна  1, 2

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 5 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни