Size: a a a

IT KPI C/C++ ХВ (не UB)

2021 May 11

DK

David Kravets in IT KPI C/C++ ХВ (не UB)
Ребята, а почему в этом коде все выводится правильно ?

int p[10] = ...

for(int i = 0;I<10;I ++)
{
 cout<< *p;
 (char *)p++;
};
источник

DK

David Kravets in IT KPI C/C++ ХВ (не UB)
Разве тут p++ на чар только
источник

AW

Alexander Wizaral in IT KPI C/C++ ХВ (не UB)
можно не кастовать
источник

БЗ

Богдан Зараник... in IT KPI C/C++ ХВ (не UB)
А нафиг вообще char*?
источник

ДЦ

Дмитро Цимбалюк... in IT KPI C/C++ ХВ (не UB)
так разыменовывание по указателю идет
источник

AW

Alexander Wizaral in IT KPI C/C++ ХВ (не UB)
char[] это char*
источник

M

Mikhail in IT KPI C/C++ ХВ (не UB)
потому что это массив интов
источник

ДЦ

Дмитро Цимбалюк... in IT KPI C/C++ ХВ (не UB)
p это указатель, *p, собственно, первый элемент массива
источник

DK

David Kravets in IT KPI C/C++ ХВ (не UB)
А все понял , спасибо
источник

M

Mikhail in IT KPI C/C++ ХВ (не UB)
хотя это мега криво
источник

БЗ

Богдан Зараник... in IT KPI C/C++ ХВ (не UB)
Ну и зачем? Разве без него не будет работать?
источник

AW

Alexander Wizaral in IT KPI C/C++ ХВ (не UB)
А, стоп, там инты
источник

БЗ

Богдан Зараник... in IT KPI C/C++ ХВ (не UB)
+
источник

AW

Alexander Wizaral in IT KPI C/C++ ХВ (не UB)
Оно сначала изменяет значение указателя, потом кастит
источник

M

Mikhail in IT KPI C/C++ ХВ (не UB)
там другая математика поинтеров идет
источник

M

Mikhail in IT KPI C/C++ ХВ (не UB)
для чаров прибавится 1 байт
источник

M

Mikhail in IT KPI C/C++ ХВ (не UB)
для интов 4
источник

БЗ

Богдан Зараник... in IT KPI C/C++ ХВ (не UB)
Знаю.
источник

DK

David Kravets in IT KPI C/C++ ХВ (не UB)
+
источник

AW

Alexander Wizaral in IT KPI C/C++ ХВ (не UB)
Если написать
++(char*)p;
То будет уб
источник