Разлика између матрице и показивача
Садржај
Између низа и поинтера постоји близак однос. Показивач се може користити за приступ елементима матрице, а приступ читавом низу помоћу аритметике показивача чини приступ бржим. Постоји основна разлика између показивача и матрице, то јест, низ је скуп варијабли сличног типа података док је показивач променљива која чува адресу друге променљиве. Постоје неке друге разлике између низа и поинтера које су наведене у упоредном графикону.
- Упоредни графикон
- Дефиниција
- Кључне разлике
- Закључак
Упоредни графикон
Основе за упоређивање | Арраи | Поинтер |
---|---|---|
Изјава | // У Ц ++ тип вар_наме; // На Јави. тип вар-наме; вар_наме = нови тип; | // У Ц ++ тип * вар_наме; |
Рад | Чува вредност променљиве хомогеног типа података. | Складиштите адресу друге променљиве исте врсте података као и тип података променљивих поинтера. |
Генерација | Може се генерисати низ показивача. | Може се генерисати показивач на низ. |
Јава подршка | Подржите концепт низа. | Не подржава показиваче. |
Складиште | Нормални низ похрањује вриједности варијабле, а низ показивача похрањује адресу варијабли. | Показивачи су посебно дизајнирани за чување адресе променљивих. |
Капацитет | Низ може да похрани број елемената, поменуте у величини променљиве поља. | Променљива поинтера може истовремено да смешта адресу само једне променљиве. |
Дефиниција Арраи-а
Низ је скуп елемената исте врсте података, а сви ти елементи се називају заједничким именом, које је име променљиве поља. Конкретном елементу поља може се приступити приступом специфичном индексу тог поља у којем се тај елемент чува. Низови могу бити једнодимензионални низ, дводимензионални низ или вишедимензионални низ. Низ показивача се такође може генерисати, тј. Низ који садржи сву променљиву као променљиву поинтеру. У „Ц ++“ низовима се статички додељују, док се у „Јава“ низови динамички распоређују.
// У Ц ++ упишите вар_наме; // На Јави. тип вар-наме; вар_наме = нови тип;
Овде 'типе' означава тип података променљиве матрице, 'вар_наме' означава име дано променљивој матрици, 'сизе' означава капацитет променљиве матрице тј. Колико елемената 'типе' се може сачувати у тој променљивој матрици . Постоје две методе приступа низу, први „аритметика показивача“ и други „индексирање матрице“, од којих је „аритметика показивача“ бржа.
// приступ помоћу аритметике показивача Воид дисплаи_арраи (инт * С) {вхиле (* с) {цоут (<< "вредност је" << * с); * с ++; }}
Кориштење 'аритметике показивача' радило би брже у односу на 'индексирање низова', тј. Приступило се варијабли низова користећи свој индекс. Ако требате прослиједити низ показивача у функцију, то се може учинити кориштењем исте методе којом се просљеђујете нормални низ, тј. Директно позива функцију с именом матрице, без икаквог индекса.
Разумејмо то на примеру
// Декларирање низа показивача. инт * п;
Овде се показује да је „п“ низ целих бројева, а садржи 10 варијабли целог броја. Преносимо горњи низ показивача у функцијски приказ ().
дисплеј (п); // Позовите приказ функције. неважећи приказ (инт * д) {// Функција која прима показивачки низ. фор (инт и = 0; и <10; и ++) {цоут << ("индекс" <
Ова функција ће приказати вредности које су присутне у променљивим, чије су адресе похрањене у овом низу показивача.
Дефиниција Поинтер-а
Показивач је променљива која садржи меморијску адресу друге променљиве. Врста података и варијабле показивача и варијабле чија се адреса додељује варијабли поинтера мора бити иста. Варијабла показивача је декларисана као што следи.
// Изјава у имену Ц ++ *;
Овде је „типе“ врста података, „наме“ је назив променљиве поинтера. 'Типе' дефинише врсту адресе променљиве може да се сачува у променљивој поинтери. На пример, целобројни показивач ће похранити адресу целе променљиве. Постоје два оператора показивача '*' и '&'. Оператор '*' враћа вредност која се налази на адреси, а која је смештена у променљивој, а затим знак '*'. Оператор '&' враћа адресу променљиве која следи знак '&'.
// на пример, инт б = 10 инт а = & б; // Овде је адреса б смештена у променљивој а. // дозвољава да адреса б буде 2000, па је сада а = 2000. инт ц = * а; // Овде цела варијабла показивача * а враћа вредност која се налази на адреси похрањеној у .ие. ц = 10.
Постоје само два аритметичка оператера која можете користити на показивачима, тј. Сабирању и одузимању. Ако примијените прираштај на цијелој варијабли поинтера, он ће се повећавати величином врсте података, тј. За 2 бајта, јер је цијели број поинтера, с прираштајем ће морати усмјерити сљедећу цијелу варијаблу. Исти је случај и са декретом.
// п је цео број поинтера који садржи вредност 2000. п ++; // сада п = 2002. п--; // сада п поново садржи 2000, смањена за два бајта.
- Низ похрањује варијабле сличних типова података, а типови података варијабли морају одговарати врсти поља. С друге стране, варијабла показивача чува адресу променљиве, типа сличног типу променљиве поинтера.
- Можемо генерисати низ показивача, тј. Низ чије су варијабле променљиве поинтера. Са друге стране, можемо створити показивач који указује на низ.
- Јава подржава низ, али не подржава показиваче.
- Величина матрице одређује број променљивих које може да похрани, док; Показивачка варијабла може да смешта адресу само променљиве
Белешка:
Јава не подржава или строго избегава показиваче.
Закључак:
Када требамо радити на елементима података сличног типа података, умјесто да радимо одвојено на варијаблама, можемо створити низ тих варијабли сличних типова података и затим на њима радити. Показивачи су неопходни за неки програм, он даје огромну снагу, али нажалост, ако показивач садржи погрешну вредност, то ће бити најтежа грешка коју ћете пронаћи.