Змінюй хід війни! Допомагай ЗСУ!

Задача по ЦЕдваплюса

  • Автор теми Автор теми vasyabosoy2
  • Дата створення Дата створення
Та то вы оба немного перегнули палку. Есть массивы, возможно не в том виде как в других языках, ничего высчитывать не надо, типы проверяются, длина только нигде не указана.
почему тогда нельзя к этому массиву приделать проперти хранящее его длину?
 
почему тогда нельзя к этому массиву приделать проперти хранящее его длину?
C - это довольно низкоуровневый язык и хранение длины не вписывается в концепцию. На С++ есть классы, где всё это прекрасно реализовано.
 
C - это довольно низкоуровневый язык
тут вроде про с_плюс_плюс.

почему тогда нельзя к этому массиву приделать проперти хранящее его длину?
"Все уже украдено до вас"(с) Операция Ы.
Всё в плюсах есть, только почему-то использование stl на плюсах расценивается как чтото сверхсложное нежели использование джавистами java.lalala и шарперами System.lalala стандартных классов и библиотек которые по сути являются враперами, инкапсуляцией или конвертацией техник и методов написанных на плюсах, так как все виртуальные машины и интерпретаторы вылупились из незабвенных си и плюсов.



ЗЫ Вообще коренные джависты и шарперы, а тем более джаваскриптёры скорее всего видят выполнение стандартных процедур своего языка как некую "мааагию", даже не вдаваясь в подробности на чуть чуть, что же всетаки происходит.
 
Останнє редагування:
Смешались в кучу кони, люди... В C да, ни строк ни массивов нифига нету. В плюсах всё это и ещё приятелей целый мешок, просто выглядит немножко не так. А ТС вообще пытается выполнить задание под яву на сипласплас(а по факту ещё хуже - на С, поскольку объекты и шаблоны не использует) и удивляется, что у него не выходит. Вот уж действительно, странно.
 
то есть если тебе нужен типизированный массив, ты просто берешь создаешь указатель и ***ришь туда всякий мусор, учитывая некое смещение (ну типа размер размер указателя на объект который я кобы лежит в этом массивчике), а потом когда надо обратится к 30-му элементу массива ты сам ручками должен высчитать где он хранится учитывая всю эту ***ню с указателями и смещениями?
И при этом типы объектов засовываемых в массив ***** не контролируются и тебе руками нужно следить за корректностью всей этой поебени?
по мужски, чо :D

Ну тип того, только указатель сам смашаеться на базовый сайзоф :)

как там: при операции над строкой нужно самому, *****, руками, ***** ориентироваться на то шо концом строки является символ "0" иначе получишь ***ню в результате? :D

В какой то степени да :)

Та то вы оба немного перегнули палку. Есть массивы, возможно не в том виде как в других языках, ничего высчитывать не надо, типы проверяются, длина только нигде не указана.

Где? :)
ЧТо из этого массив а что указатель:
int* p = {0, 1, 2, 3, 4, 5};
int a[] = &b;

почему тогда нельзя к этому массиву приделать проперти хранящее его длину?

:іржач: какое еще проперти? К чему пределать? К микросхеме памяти?



"Все уже украдено до вас"(с) Операция Ы.
Всё в плюсах есть, только почему-то использование stl на плюсах расценивается как чтото сверхсложное нежели использование джавистами java.lalala и шарперами System.lalala стандартных классов и библиотек которые по сути являются враперами, инкапсуляцией или конвертацией техник и методов написанных на плюсах, так как все виртуальные машины и интерпретаторы вылупились из незабвенных си и плюсов.
stl - это библиотека, которой в общем случае где то может и не быть :) Правда там и плюсов скорее всего нет - только си :)

ЗЫ Вообще коренные джависты и шарперы, а тем более джаваскриптёры скорее всего видят выполнение стандартных процедур своего языка как некую "мааагию", даже не вдаваясь в подробности на чуть чуть, что же всетаки происходит.
А то :D Прихерячил к куску проперти и еще ТуСтринг желательно и жизнь замечательна :іржач:

С++ это С + классы + несколько мелочей. Поскольку у ТС пример без классов, то это приктически С.

Этого, а давно try {} catch и шаблоны мелочью стали?
 
Останнє редагування:
Где? :)
ЧТо из этого массив а что указатель:
int* p = {0, 1, 2, 3, 4, 5};
int a[] = &b;
Первое указатель на массив, второе указатель, но я не об этом.
Если бы в Си не было массивов, вместо

int A[5];
A[2]= 10;

мы бы писали:

int *A;
A= alloc( 5*sizeof(int));
*(A+2*sizeof(int))= 10;

Этого, а давно try {} catch и шаблоны мелочью стали?
Всё в мире относительно :)
 
Первое указатель на массив, второе указатель но я не об этом.

Если бы первое было укзателем на массив то это было бы что то типа
int* pa[]; или как то так.
а если так:

#ifdef GOVNOKOD
#define MyStruct int*
#else
#define MyStruct _MyStruct
#endif

MyStruct s = {1, 2, 3, 4, 5};
s - это что?

Если бы в Си не было массивов, вместо
int A[5];
A[2]= 10;

мы бы писали:

int *A;
A= alloc( 5*sizeof(int));
*(A+2*sizeof(int))= 10;

Чейта? Оператор [] - операция индексированного доступа, применяемая к любому указателю типа отличного от void*.
Type name[n] - все го лишь операция группового выделения памяти на стеке, причем:
int a1;
int a2;
int a3;
int a4;
int a5;
int a[] = &a1;
абсолютно эквивалентно int a[5];
 
Ну да, а мясо и свинина это тоже совершенно разные вещи.
 
Где?
ЧТо из этого массив а что указатель:
int* p = {0, 1, 2, 3, 4, 5};
int a[] = &b;
Все просто, это неправильная инициализация указателя и массива:)

int a1;
int a2;
int a3;
int a4;
int a5;
int a[] = &a1;
абсолютно эквивалентно int a[5];
А это вообще ахинея какая-то, ты точно С++ знаешь?
 
А это вообще ахинея какая-то, ты точно С++ знаешь?

Ну не то что совсем ахинея, но писать так не стоит, эта хрень будет сильно от компилятора зависеть. Хороший способ добавить геморроя тому кто этот код будет поддерживать - пусть поищет, почему на новой версии компилятора программа перестала работать:іржач:
 
вообще ахинея какая-то
на грани, это если компилятор придерживается свойства ... помоему оно называется "гарантированный последовательный доступ", НО это свойство гарантируется только массивам.
 
Все просто, это неправильная инициализация указателя и массива:)
А это вообще ахинея какая-то, ты точно С++ знаешь?

Это называеться ****окод :D И при +/- правильном должном обращении он даже работает :D что как по мне самое страшное...
 
Это называеться ****окод И при +/- правильном должном обращении он даже работает что как по мне самое страшное...
Та ****окод то понятно, но оно же даже не скомпилируется нихрена, во всяком случае если компилятор поддерживает стандарт.
на грани, это если компилятор придерживается свойства ... помоему оно называется "гарантированный последовательный доступ", НО это свойство гарантируется только массивам.
Та дело даже не в этом, а в том , что если lvalue у тебя int a[], то после равно он же ждет список инициализации, а не указатель или еще какую хрень...

Но ТСу уже по-моему пофиг, он уже понял что лучше учить джаву:)
 
Та дело даже не в этом, а в том , что если lvalue у тебя int a[], то после равно он же ждет список инициализации, а не указатель или еще какую хрень...

C - скомпилирует если не ошибаюсь :) Надо будет дома отрыть старый добрый ЖЦЦ и проверить :)
 
Назад
Зверху Знизу