| Dark |
14.05.2003 23:40
Сообщение
#1
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 408 Пол: Мужской Репутация: 3 |
Люди, приведите мне пожайлуста 10 отличий си от паскаля(не касаясь синтаксиса)... А то передо мной стоит дилема: изучать си или нет, но я не вижу разницы между си и пасом!!!!!!!!!
-------------------- - Где я?
- Во тьме. - В какой тьме? - Во тьме твоего мозга. |
![]() ![]() |
| Deny |
19.05.2003 16:24
Сообщение
#2
|
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 149 Репутация: 1 |
Цитата Диалект Си сплошное изврашение, особо после Паскаля. Pascal+Asm=Rulez. А ты у нас типа знаток всех диалектов, всех языков.... вот и пиши все на Паскале, ты на нем наверное и разговариваешь... ??? Не хочешь учить - не надо, тебя ни кто не заставляет. >:( Ты бы не позорился своими заявлениями, до того как сам разберешся, да же написать правельно не смог, Си - это язык, а не диалект. Любой язык+Asm=Rulez. Добавлено позже: Цитата Q4: А как же тогда деление не нацело!! Q5: Раскажи про указатели их использование и на кой они нужны, Q6: динамическую память и использование ее для массива произвольной размерности(в пределах 64 kb). А то эту темц я не очень провариваю! A4: Тут все еще проще, если в операции учавствует число не типа int, то и результат будет не типа int. A5: Указатель - это особый тип переменной, он содержит адрес какой-то переменной обычного типа. Создается он например так: int *ukazatel; звездочка обозначает, что переменная ukazatel является типом "указатель", а int, что она будет указывать на переменную типа int. Допустим, у нас есть переменная peremennay типа int: int peremennay; со значением 123, peremennay = 123; зделаем так, что бы наш указатель указал на нее, для этого есть операция "&" ukazatel = &peremennay; если теперь мы посмотрим на значение нашего указателя, то оно будет похожим на подобие этого, 0x0012FE20 это число на самом деле не число (результат абстракции), а адрес в памяти, где лежит начало переменной на которую мы указываем. Теперь мы можем обратиться к нашему числу 123 двумя способами. Так peremennay -= 23; или так *ukazatel -= 23; все с то же зведочкой, в обоих случаях наша переменная будет содержать число 100. С помощью указателей можно создать безымянную/динамическую переменную, для этого есть операция new, int *uk; uk = new int; к стате можно писать сразу так int *uk = new int; теперь указатель uk указывает (содержит адрес памяти где начало) на переменную типа int не имеющию названия/имени. Для того, что бы освободить память (вернуть в кучу) от не нужной нам больше переменной, есть операция delete, например delete uk Так как переменные различних типов и тем более целые структуры занимают по нескольку (теоритически сколько угодно много) ячеек памяти, то представте сколько займет времени у процессора, что бы к примеру передать какую либо большую структуру/переменную в какую-то функцию, да еще и получить обратно новое значение. Если функция работает один раз, то это еще ничго, а если 10....100 тысяч раз? Как выход из положения и существуют указатели, они каротки, и в функции передаются значительно быстрей,т.к. содержат только адреса начал нужных структур/переменных, а не непосредственно грамоздкие структуры/переменные. Переменные обозначающие обычные массивы отличаются тем, что они всегда являются указателями на первый элемент данного массива. Динамические массивы создаются точно так же: int *arr = new int[100]; создали указатель на переменную типа int и присвоили ему значение адреса первого элемента из 100 элементов типа int. Для того, что бы освободить память используется таже операция delete, но теперь со скобками, что обозначает, что мы хотим удалить весь массив, а не, только первый элемент, delete [] arr; При создании динамических переменных или массивов, в случаи нехватки памяти, указатель будет содержать предопределенную константу NULL. Над указателями можно проводить арифметические операции, например: double *arr = new double[20]; значением arr будет адрес в памяти, например 0x0012FE31 указывающий на первый элемент массива, т.е. arr[0], после операции arr + 1 или, что то же самое arr++, arr будет указывать на следующий элемент массива arr[1], но адрес будет другим, 0x0012FE39, т.к. эти операции не просто тупо увеличивают адрес на единицу, а в зависимости от типа значений массива на нужное число байт. Размерность массива может быть любой, т.к. мы работаем с указателями. |
Dark Вопрос про си 14.05.2003 23:40
Deny Re: Вопрос про си 15.05.2003 9:54
___ALex___ Re: Вопрос про си 15.05.2003 15:40
Deny Re: Вопрос про си 15.05.2003 18:20
___ALex___ Re: Вопрос про си 15.05.2003 18:53
Deny Re: Вопрос про си 15.05.2003 19:18
mj Re: Вопрос про си 15.05.2003 20:03
Dark Re: Вопрос про си 15.05.2003 23:52
Alesha_GA Re: Вопрос про си 16.05.2003 4:40
Deny Re: Вопрос про си 16.05.2003 10:27
Alex Re: Вопрос про си 16.05.2003 10:48
Slam Re: Вопрос про си 16.05.2003 15:58
Deny Re: Вопрос про си 16.05.2003 16:48
mj Re: Вопрос про си 16.05.2003 17:24
___ALex___ Re: Вопрос про си 16.05.2003 17:40
Deny Re: Вопрос про си 16.05.2003 17:55
Dark Re: Вопрос про си 16.05.2003 23:24
Alex Re: Вопрос про си 17.05.2003 8:59
Deny Re: Вопрос про си 17.05.2003 11:45
Alesha_GA Re: Вопрос про си 19.05.2003 2:19
Alex Re: Вопрос про си 19.05.2003 14:42
mj Re: Вопрос про си 19.05.2003 23:20
Alesha_GA Re: Вопрос про си 20.05.2003 0:00
Dark Re: Вопрос про си 20.05.2003 1:25
Deny Re: Вопрос про си 20.05.2003 3:14
Dark Re: Вопрос про си 21.05.2003 0:18
AlaRic Re: Вопрос про си 21.05.2003 6:06
Deny Re: Вопрос про си 21.05.2003 11:20
Alex Re: Вопрос про си 21.05.2003 12:25
AlaRic Re: Вопрос про си 21.05.2003 13:54
Noname Re: Вопрос про си 21.05.2003 14:34
AlaRic Re: Вопрос про си 21.05.2003 15:10
Deny Re: Вопрос про си 21.05.2003 17:42
Alex Re: Вопрос про си 21.05.2003 17:52
Deny Re: Вопрос про си 21.05.2003 18:13
Dark Re: Вопрос про си 22.05.2003 1:33
Deny Re: Вопрос про си 22.05.2003 11:12
Alex Re: Вопрос про си 22.05.2003 13:42
GLuk Re: Вопрос про си 23.05.2003 21:55
Shadow Re: Вопрос про си 23.05.2003 22:00
Deny Re: Вопрос про си 23.05.2003 22:23
Alex Re: Вопрос про си 24.05.2003 10:41
Noname Re: Вопрос про си 28.05.2003 6:34
GLuk Re: Вопрос про си 28.05.2003 16:28
Shadow Re: Вопрос про си 28.05.2003 17:55
GLuk Re: Вопрос про си 28.05.2003 19:18
Deny Re: Вопрос про си 28.05.2003 20:28
AlaRic Re: Вопрос про си 29.05.2003 18:57
Deny Re: Вопрос про си 29.05.2003 19:19
Alex Re: Вопрос про си 2.06.2003 8:02
mj Re: Вопрос про си 3.06.2003 17:05
GLuk Re: Вопрос про си 3.06.2003 17:39
Deny Re: Вопрос про си 3.06.2003 19:16
Altair Re: Вопрос про си 5.02.2004 9:56
UtaH Re: Вопрос про си 5.02.2004 11:48
dushik Re: Вопрос про си 8.02.2004 5:56
GLuk Re: Вопрос про си 9.02.2004 7:10
P@sh@ Re: Вопрос про си 10.02.2004 6:01
Altair Re: Вопрос про си 12.02.2004 5:35
Atos Re: Вопрос про си 14.02.2004 4:40
Свят Сорри за оффтоп, но я как за си, так и за паскаль.... 7.12.2011 20:16
Rian Все время учил делфи, писал на нем, но реально уст... 9.12.2011 20:26![]() ![]() |
|
Текстовая версия | 8.12.2025 16:50 |