Разлика између матрице и показивача

Аутор: Laura McKinney
Датум Стварања: 1 Април 2021
Ажурирати Датум: 15 Може 2024
Anonim
Что такое LCD, TFT, TFT IPS, AMOLED и Super AMOLED
Видео: Что такое LCD, TFT, TFT IPS, AMOLED и Super AMOLED

Садржај


Између низа и поинтера постоји близак однос. Показивач се може користити за приступ елементима матрице, а приступ читавом низу помоћу аритметике показивача чини приступ бржим. Постоји основна разлика између показивача и матрице, то јест, низ је скуп варијабли сличног типа података док је показивач променљива која чува адресу друге променљиве. Постоје неке друге разлике између низа и поинтера које су наведене у упоредном графикону.

  1. Упоредни графикон
  2. Дефиниција
  3. Кључне разлике
  4. Закључак

Упоредни графикон

Основе за упоређивањеАрраиПоинтер
Изјава// У Ц ++
тип вар_наме;
// На Јави.
тип вар-наме;
вар_наме = нови тип;
// У Ц ++
тип * вар_наме;
РадЧува вредност променљиве хомогеног типа података.Складиштите адресу друге променљиве исте врсте података као и тип података променљивих поинтера.
ГенерацијаМоже се генерисати низ показивача.Може се генерисати показивач на низ.
Јава подршкаПодржите концепт низа.Не подржава показиваче.
СкладиштеНормални низ похрањује вриједности варијабле, а низ показивача похрањује адресу варијабли.Показивачи су посебно дизајнирани за чување адресе променљивих.
КапацитетНиз може да похрани број елемената, поменуте у величини променљиве поља. Променљива поинтера може истовремено да смешта адресу само једне променљиве.


Дефиниција Арраи-а

Низ је скуп елемената исте врсте података, а сви ти елементи се називају заједничким именом, које је име променљиве поља. Конкретном елементу поља може се приступити приступом специфичном индексу тог поља у којем се тај елемент чува. Низови могу бити једнодимензионални низ, дводимензионални низ или вишедимензионални низ. Низ показивача се такође може генерисати, тј. Низ који садржи сву променљиву као променљиву поинтеру. У „Ц ++“ низовима се статички додељују, док се у „Јава“ низови динамички распоређују.

// У Ц ++ упишите вар_наме; // На Јави. тип вар-наме; вар_наме = нови тип;

Овде 'типе' означава тип података променљиве матрице, 'вар_наме' означава име дано променљивој матрици, 'сизе' означава капацитет променљиве матрице тј. Колико елемената 'типе' се може сачувати у тој променљивој матрици . Постоје две методе приступа низу, први „аритметика показивача“ и други „индексирање матрице“, од којих је „аритметика показивача“ бржа.


// приступ помоћу аритметике показивача Воид дисплаи_арраи (инт * С) {вхиле (* с) {цоут (<< "вредност је" << * с); * с ++; }}

Кориштење 'аритметике показивача' радило би брже у односу на 'индексирање низова', тј. Приступило се варијабли низова користећи свој индекс. Ако требате прослиједити низ показивача у функцију, то се може учинити кориштењем исте методе којом се просљеђујете нормални низ, тј. Директно позива функцију с именом матрице, без икаквог индекса.

Разумејмо то на примеру

// Декларирање низа показивача. инт * п;

Овде се показује да је „п“ низ целих бројева, а садржи 10 варијабли целог броја. Преносимо горњи низ показивача у функцијски приказ ().

дисплеј (п); // Позовите приказ функције. неважећи приказ (инт * д) {// Функција која прима показивачки низ. фор (инт и = 0; и <10; и ++) {цоут << ("индекс" <

Ова функција ће приказати вредности које су присутне у променљивим, чије су адресе похрањене у овом низу показивача.

Дефиниција Поинтер-а

Показивач је променљива која садржи меморијску адресу друге променљиве. Врста података и варијабле показивача и варијабле чија се адреса додељује варијабли поинтера мора бити иста. Варијабла показивача је декларисана као што следи.

// Изјава у имену Ц ++ *;

Овде је „типе“ врста података, „наме“ је назив променљиве поинтера. 'Типе' дефинише врсту адресе променљиве може да се сачува у променљивој поинтери. На пример, целобројни показивач ће похранити адресу целе променљиве. Постоје два оператора показивача '*' и '&'. Оператор '*' враћа вредност која се налази на адреси, а која је смештена у променљивој, а затим знак '*'. Оператор '&' враћа адресу променљиве која следи знак '&'.

// на пример, инт б = 10 инт а = & б; // Овде је адреса б смештена у променљивој а. // дозвољава да адреса б буде 2000, па је сада а = 2000. инт ц = * а; // Овде цела варијабла показивача * а враћа вредност која се налази на адреси похрањеној у .ие. ц = 10.

Постоје само два аритметичка оператера која можете користити на показивачима, тј. Сабирању и одузимању. Ако примијените прираштај на цијелој варијабли поинтера, он ће се повећавати величином врсте података, тј. За 2 бајта, јер је цијели број поинтера, с прираштајем ће морати усмјерити сљедећу цијелу варијаблу. Исти је случај и са декретом.

// п је цео број поинтера који садржи вредност 2000. п ++; // сада п = 2002. п--; // сада п поново садржи 2000, смањена за два бајта.

  1. Низ похрањује варијабле сличних типова података, а типови података варијабли морају одговарати врсти поља. С друге стране, варијабла показивача чува адресу променљиве, типа сличног типу променљиве поинтера.
  2. Можемо генерисати низ показивача, тј. Низ чије су варијабле променљиве поинтера. Са друге стране, можемо створити показивач који указује на низ.
  3. Јава подржава низ, али не подржава показиваче.
  4. Величина матрице одређује број променљивих које може да похрани, док; Показивачка варијабла може да смешта адресу само променљиве

Белешка:

Јава не подржава или строго избегава показиваче.

Закључак:

Када требамо радити на елементима података сличног типа података, умјесто да радимо одвојено на варијаблама, можемо створити низ тих варијабли сличних типова података и затим на њима радити. Показивачи су неопходни за неки програм, он даје огромну снагу, али нажалост, ако показивач садржи погрешну вредност, то ће бити најтежа грешка коју ћете пронаћи.