Показивач (понекад поинтер, према енгл.pointer) представља промјенљиву специјалног типа у неким програмским језицима попут C-а, C++-а, Паскала итд. Показивач има сврху да чува адресу меморијске локације неке друге промјенљиве, константе или показивача.
Основна својства показивача су:
показивач може мијењати вриједност (тј. може показивати на разне локације за вријеме свог радног вијека)
преко њега се може добити вриједност промјенљиве чију адресу чува (на коју показује)
преко њега се може мијењати вриједност промјенљиве на коју показује
Када узимамо или мијењамо вриједност елемента на којег показивач показује, кажемо да га дереференцирамо.
Типови показивача
У већини програмских језика који подржавају показиваче, показивачи се дијеле на типске и бестипске.
Уз типске показиваче се веже информација о типу промјенљивих на које ће дати показивач моћи показивати, односно чије ће адресе моћи чувати. Када декларишемо типски показивач, он до краја свог вијека има исти тип.
Бестипски показивачи немају одређен тип промјенљиве на које ће моћи показивати, те могу показивати на све промјенљиве подједнако. На уштрб тога, међутим, постоје одређена ограничења везана за ову врсту показивача:
није дозвољена показивачка аритметика у језицима у којима је подржана за типске показиваче
Бестипски показивачи се најчешће користе у ситуацијама када одређена функција прихвата податке промјенљивог типа или када нам тип податка није унапријед познат.
Референцирање и дереференцирање
Референцирање је процес у којем показивачу додјељујемо адресу одређене меморијске локације. Након тога кажемо да показивач показује на ту меморијску локацију.
Дереференцирање је процес у којем преко показивача који већ показује на неку меморијску локацију приступамо самој локацији, било ради читања њене вриједности, било ради њеног мијењања. Забрањено је, и најчешће узрокује прекид рада програма, дереференцирање показивача који:
садржи вриједност која служи за означавање да показивач ни не показује ни на шта (најчешће вриједност 0)
показује на адресу која се не налази у меморијском простору процеса који извршава програм. То су најчешће показивачи са неиницијализованим вриједностима, који садрже адресу која се случајно затекла у простору заузетом за дати показивач.
Показивачка аритметика
Показивачка аритметика се односи на посебан начин вршења рачунских операција сабирања и одузимања када међу операндима има и показивача. Тада често не важе уобичајена правила при рачунању, тј. адресе које показивачи чувају неће се сабирати и одузимати као обични бројеви. Показивачка аритметика за сврху има софистицирано руковање показивачима како би се добили одређени резултати. Помоћу показивачке аритметике, показивач се може кретати по одређеним меморијским локацијама, могу се мјерити удаљености једне меморијске локације од друге у зависности од типова показивача итд.
Показивачи у програмском језику C
Типови показивача
У програмском језику C, показивачи се дијеле на типске и бестипске.
Поред показивача на обичне промјенљиве, постоје и показивачи на функције. Показивачи на функције се могу просљеђивати другим функцијама као аргументи и преко њих се могу позивати функције на које показују, што им је и примарна примјена.
Декларација
Типски показивачи се декларишу на сљедећи начин:
tip_pokazivaca*ime_pokazivaca;
Прво се наводи тип промјенљиве на какве ће моћи показивати показивач, затим слиједи звјездица (*) и на крају име показивачке промјенљиве терминиране тачка-зарезом. За име показивача важе уобичајена правила именовања у п. ј. C.
Бестипски показивачи се декларишу на сљедећи начин:
void*ime_pokazivaca;
Умјесто типа овде се наводи кључна ријеч void, након које важе правила као за типске показиваче.
Показивачи на функције се декларишу на сљедећи начин:
Слиједи примјер за декларацију показивача на одређену функцију:
/* декларација произвољне функције */char*kopiraj(char*odrediste,char*izvoriste){/* блок функције */}/* декларација показивача на овакву функцију (без иницијализације) */char*(*pkopiraj)(char*odrediste,char*izvoriste);
Пошто је сврха показивача да чувају адресу неког другог податка, морамо да:
знамо унапријед на којој тачно локацији се налази одговарајућа промјенљива
користимо оператор & да бисмо добили адресу дате промјенљиве
позовемо неку од уграђених функција које нам алоцирају нову меморију и враћају адресу алоцираног простора
Слиједе примјери за сваку од ставки, редом:
int*p1;inta=3;p1=0x4CC7EC5C;/* изузетно је опасно и не препоручује се додјељивати адресе директно */p1=&a;/* користимо оператор & за добијање адресе од a да бисмо је додијелили промјенљивој p1 */p1=malloc(sizeof(int));/* користимо функцију malloc да алоцирамо простор величине једне цјелобројне промјенљиве. *//* malloc враћа адресу новоалоцираног простора */
У случајевима када се жели показати да показивач не чува никакву адресу, тада му додјељујемо нулу помоћу уграђене константе NULL:
int*p1=NULL;
Код показивача на функције важи нешто другачија синтакса референцирања. Ако постоји функција f, и показивач pf декларисан тако да може на њу да показује, онда се референцирање врши једноставном додјелом промјенљиве f промјенљивој pf, без коришћења обичних заграда, као код самог позива:
pf=f;
Дереференцирање
Дереференцирање је процес у којем преко показивача који већ показује на неку меморијску локацију приступамо самој локацији. За ову операцију се користи оператор звјездице (*) испред имена показивачке промјенљиве:
int*p1;inta;p1=&a;/* p1 нека показује на a */*p1=10;/* оно на шта p1 показује (a), нека постане једнако 10 */
Показивачи на функције се деференцирају на нешто другачији начин. Заправо, код њих се не може говорити о правом дереференцирању, него радије само о позивању функције преко показивача. Наиме, оног тренутка када је нпр. показивач pf почео да показује на функцију f, он је постао алиас (лажно име, друго име) за функцију f, и користи се равноправно, на исти начин као и сама функција. Слиједи примјер:
intsaberi(inta,intb){returna+b;}intmain(){int(*psaberi)(int,int);intx=3,y=4;intz;psaberi=saberi;z=saberi(x,y);/* позив оригиналне функције */z=psaberi(x,y);/* позив функције преко показивача */}
Слиједи примјер просљеђивања показивача на функцију другој функцији, која је позива преко тог показивача:
intsaberi(intx,inty){returnx+y;}intpozovi(int(*psaberi)(int,int),intx,inty){returnpsaberi(x,y);/* позивамо функцију преко показивача, и просљеђујемо јој преостала два аргумента */}intmain(){intz;z=pozovi(saberi,3,4);/* први аргумент је само име функције, без заграда, а други су аргументи за сабирање */return0;}
Показивачка аритметика
У показивачкој аритметици програмског језика C не важе уобичајена правила при рачунању, тј. адресе које показивачи чувају неће се сабирати и одузимати као обични бројеви. Начин рачунања ће заправо зависити од тога који је тип промјенљиве на коју показивачи показују, односно који је тип самих показивача. Сабирање и одузимање показивача са цијелим бројем се врши по сљедећој формули:
p1±n=p1±(n*sizeof(*p1));
Погледајмо сљедећи примјер:
doublex=3.14;/* претпоставимо да се x налази на адреси 10000 */double*px=&x;/* px добија вриједност 10000 */printf("%d\n",px+5);/* штампа се број 10000 + 5*sizeof(double) = нпр. 10000 + 5*8 = 10040 (не 10005) */
Показивачи се могу и међусобно одузимати, када важе слична правила као код показивача и цијелог броја.
Важе сљедећа рестриктивна правила везана за показиваче:
показивачи се не смију множити нити дијелити цијелим бројем
показивачи се не смију међусобно сабирати, множити нити дијелити
Примјена
У програмском језику C, најважније примјене показивача су сљедеће:
пренос аргумената функцији по референци
имплементација низова
имплементација динамичких структура
Пренос аргумената функцији по референци
У програмском језику C, функције су такве да добијају увијек копије аргумената које јој просљеђујемо, а никад оригиналне аргументе. На овај начин функција не може имати спољашње ефекте јер све што добија од функције-позиваоца су копије оригиналних аргумената који остају нетакнути. Овакав начин преноса аргумената се популарно назива пренос аргумената по вриједности, јер функција добија практично само вриједности оригиналних аргумената али никад и директно њих саме.
Проблеми се јављају, међутим, у случајевима када желимо да функција ипак измијени одређене промјенљиве које јој прослиједимо као аргументе. Та се потреба јавља нпр. када желимо функцију која ће имати више резултата, јер помоћу уобичајене кључне ријечи return она може вратити само један резултат. Тада користимо тзв. пренос аргумената по референци који у ствари представља праксу да умјесто оригиналног елемента прослиједимо његову адресу као аргумент. Ова адреса представља показивач на оригинални елемент, па иако се опет поштује правило да функција добија копију аргумента који јој се прослиједи, овај пут она добија копију адресе, што је ипак сасвим довољно да се оригиналном аргументу приђе директно, дереференцирањем.
Из претходног параграфа закључујемо да функција povecaj неће извршити своју улогу јер на мјесто промјенљиве c добија копију од x. На тај начин копија од x бива повећана за 1, али не и оригинални елемент x у функцији main. Да бисмо поправили кôд, мораћемо извршити пар измјена:
функција povecaj треба да се прилагоди тако да прихвата адресу цјелобројне промјенљиве, а не њу саму
када добије адресу, дереференцираће је и повећати оно што се налази на тој адреси за 1
функција main треба да пошаље адресу од x, а не сāмо x
Погледајмо како изгледа резултат измјена:
voidpovecaj(int*pc){*pc=*pc+1;/* *pc представља оно на шта pc показује, тј. оно што се налази на адреси pc */}intmain(){intx=1;povecaj(&x);/* &x представља адресу од x */printf("%d",x);return0;}
Користећи пренос аргумената по референци, програмер такође штеди на копирању аргумената при позивању једне функције из друге. Ако је аргумент који преносимо велик податак, нпр. структура од више елемената чија укупна величина превазилази величину показивачке промјенљиве на датом систему, добро га је прослиједити по референци јер на тај начин копирамо мање података.
Имплементација низова
У програмском језику C не постоје низови као уграђени типови. Напротив, они се имплементирају преко осталих уграђених типова и показивача. Ово важи и за једнодимензионалне и вишедимензионалне низове (матрице, коцке итд.).
Сваки низ и C-у се састоји од два физичка дијела - елемената који сачињавају низ и једног показивача који показује на почетак тог низа, тј. његов први елемент (видјети слику десно). Дакле, када представимо низ на сљедећи начин:
inta[10];
тада настаје 10 елемената низа (који ниједан нема своје право име), и једна показивачка промјенљива a преко које се приступа свим елементима низа користећи синтаксу a[0] (први елемент, јер у C-у индексирање креће од нуле, а не од јединице), a[1], a[2], итд.
Низови се у C-у имплементирају преко показивача захваљујући специфичној показивачкој аритметици. Ако је a показивач на први елемент низа, онда *a представља сам елемент. Даље, пошто показивачка аритметика диктира да a+1 буде показивач на сљедећи елемент низа, онда ће *(a+1) представљати сам други елемент низа. Идући даље, примјећујемо да је a[n] еквивалентно са *(a+n). То је управо оно што компајлер види када путем оператора индекса референцирамо одређени елемент низа.
Ако идемо даље, и представимо матрицу реалних бројева М димензија m x n, тада је стање у меморији сљедеће:
M представља показивач на први елемент низа од m показивача.
сваки од m показивача показује на по први елемент низа од n реалних бројева (видјети слику десно).
Када користимо статичке декларације низова, оваква стања меморије се формирају аутоматски, али је такође могуће формирати их ручно, користећи обичну декларацију показивача и неку од уграђених C-ових функција за алоцирање меморије. Слиједи примјер:
char**alocirajMatricu(intm,intn){char**M;inti;M=malloc(m*sizeof(char*));/* алоцирамо меморију за низ показивача */for(i=0;i<m;i++)/* за сваки показивач у том низу алоцирамо по још један низ */M[i]=malloc(n*sizeof(char));/* карактера да бисмо формирали матрицу. */returnM;/* враћамо показивач „на матрицу“. */}intmain(){char**M;intm,n;inti,j;scanf("%d %d",&m,&n);/* питамо корисника колика матрица је потребна */M=alocirajMatricu(m,n);/* позивамо функцију да нам алоцира простор те величине */for(i=0;i<m;i++)/* надаље се понашамо као према обичној матрици */for(j=0;j<n;j++)M[i][j]='x';// овако алоцирану матрицу морамо обрисати ручноfor(i=0;i<m;i++)free(M[i]);free(M);return0;}
Уопштено, динамичке структуре података представљају тип структуре која заузима тачно онолико меморије колико јој је неопходно, и може се ширити и смањивати по потреби. Најчешће спомињане динамичке структуре су бинарно стабло (или бинарно дрво), листа, стек, граф, ред, и други. У програмском језику C оне се имплементирају користећи цеовске структуре (struct), показиваче и динамичко алоцирање меморије помоћу неке од уграђених функција C-а.
Показивачи у програмском језику Паскал
Типови показивача
У програмском језику Паскал, показивачи се дијеле на типске и бестипске.
Паскал не подржава показиваче на функције.
Декларација
Типски показивачи се декларишу на сљедећи начин:
ime_pokazivaca:^tip_pokazivaca;
Прво се наводи име показивачке промјенљиве и двотачка (као код декларације осталих елементарних типова промјенљивих у Паскалу), затим слиједи капица (^) и на крају тип промјенљиве на какве ће показивач моћи показивати. За име показивача важе уобичајена правила именовања у п. ј. Паскал.
Бестипски показивачи се декларишу на сљедећи начин:
ime_pokazivaca:pointer;
Умјесто типа и капице, овде се наводи кључна ријеч pointer.
Референцирање
Референцирање је процес у којем показивачу додјељујемо адресу одређене меморијске локације. Да бисмо додијелили одређену вриједност показивачкој промјенљивој, користимо један од следећа два начина:
уобичајен оператор додјеле
команду new ради алокације меморије и истовремене додјеле адресе те меморије показивачу
Слиједе примјери за обје ставке, редом:
varp1:^integer;a:integer;beginp1:=@a;(* користимо оператор @ за добијање адресе од a да бисмо је додијелили промјенљивој p1 *)new(p1)(* користимо команду new да алоцирамо простор величине једне цјелобројне промјенљиве (у складу са декларацијом показивача) *)end.
У случајевима када се жели показати да показивач не чува никакву адресу, тада му додјељујемо нулу помоћу уграђене константе nil:
p:=nil;
Дереференцирање
За ову операцију се користи оператор капице (^) иза имена показивачке промјенљиве:
varp1:^integer;a:integer;beginp1:=@a;(* p1 нека показује на a *)p1^:=10;(* оно на шта p1 показује (a), нека постане једнако 10 *)end.
Показивачка аритметика
Показивачка аритметика није подржана у стандардном Паскалу. Постоје поједине екстензије Паскала које дозвољавају показивачку аритметику, као што је GPC (Гну-ова екстензија Паскала). Показивачка аритметика Паскала је и тада једноставна и ограничена. Код ње важе уобичајена правила при рачунању, тј. адресе које показивачи чувају ће се сабирати и одузимати као обични бројеви, на тај начин додајући и одузимајући тачно задати број бајтова од адресе коју показивач чува.
Погледајмо сљедећи примјер:
varx:real;(* претпоставимо да се x налази на адреси 10000 *)px:^real;{$X+}(* коришћење екстензије која дозвољава показивачку аритметику *)beginx:=3.14;px:=@x;(* px добија вриједност 10000 *)px:=px+5;(* px добија вредност 10005 *)end.
Команде inc и dec служе да повећају односно смање вриједност показивача за онолико бајтова колико заузима промјенљива на коју показује. Дакле, команде inc и dec се врше по следећим формулама:
Ово обезбјеђује нпр. итерирање по низу служећи се једним показивачем.
Примјена
У програмском језику Паскал, показивачи немају превелику примјену, за разлику од програмског језика C. Паскал садржи низ као уграђени тип (користећи кључне ријечи array ... of), преношење аргумента функцији по референци је обезбијеђено синтаксом језика (користећи кључну ријеч var), те је једина примјена показивача у Паскалу најчешће само имплементација динамичких структура података.
Показивачи у осталим програмским језицима
Ада
Ада подржава само типске показиваче и конверзија између показивача различитих типова је подржана само у одређеном броју случајева. Сви показивачи се подразумијевано иницијализију на нулу (null), и дереференцирање показивача са том вриједношћу изазива изузетак. У програмском језику Ада, показивачи се називају приступни типови, и не подржавају показивачку аритметику, без коришћења екстензија (System.Storage_Elements)
C++
C++, као језик настао на основу C-а, подржава цјелокупну синтаксу C-а везану за показиваче.
C#
У програмском језику C#, показивачи су подржани али само под одређеним условима: било који блок кода који садржи показиваче мора бити означен као „несигуран“, користећи кључну ријеч unsafe. Програми или модули који садрже такве блокове обично захтијевају више нивое дозвола од стране корисника да би се покренули. Синтакса је јако слична синтакси програмског језика C.
Фортран
Фортран подржава показиваче од верзије 90. Показивачи у Фортрану, међутим, представљају сложене типове података, који поред адресе циљне промјенљиве такође садрже и доњу и горњу границу низа (уколико показивач служи низ), податке о секцијама низа и друге помоћне податке.
SMA Negeri 1 CluringInformasiDidirikan1997AkreditasiANomor Pokok Sekolah Nasional20525862Kepala SekolahDra. AddiniyahJurusan atau peminatanIPA dan IPSRentang kelasX, XI IPA, XI IPS, XII IPA, XII IPSKurikulumKurikulum 2013StatusNegeriAlamatLokasiJalan H. Huzaini, Benculuk, Cluring, 68483, Banyuwangi, Jawa Timur, IndonesiaTel./Faks.(0333) 397306Situs [email protected] Wuri Handayani SMA Negeri 1 Cluring (dikenal dengan sebutan Smaring) merupakan...
Biografi ini tidak memiliki sumber tepercaya sehingga isinya tidak dapat dipastikan. Bantu memperbaiki artikel ini dengan menambahkan sumber tepercaya. Materi kontroversial atau trivial yang sumbernya tidak memadai atau tidak bisa dipercaya harus segera dihapus.Cari sumber: Anna Kournikova – berita · surat kabar · buku · cendekiawan · JSTOR (Pelajari cara dan kapan saatnya untuk menghapus pesan templat ini) Anna KournikovaAnna KournikovaKebangsaan ...
Cet article est une ébauche concernant les transports en commun et le Luxembourg. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants. Ascenseur panoramique Pfaffenthal - Ville-HautePrésentationType Ascenseur, point de vue panoramiqueFondation 10 décembre 2009Ouverture 22 juillet 2016LocalisationLocalisation Pfaffenthal LuxembourgCoordonnées 49° 36′ 56″ N, 6° 07′ 50″ E...
phpGroupWare Informations Développé par 7 contributeurs Dernière version 0.9.16.017 (7 juillet 2010) Dépôt svn.savannah.nongnu.org/svn/phpgroupware État du projet Abandonné Environnement Multiplate-forme Langues Multilingue Type Outil de gestion de projet Licence GNU GPL Site web www.manvswebapp.com/phpgroupware et savannah.nongnu.org/projects/phpgroupware modifier - modifier le code - voir Wikidata (aide) phpGroupWare est un collecticiel libre développé dans le cadre du projet GNU ...
Wakil Wali Kota SawahluntoLambang Kota SawahluntoPetahanaJabatan lowongsejak 17 September 2023KediamanRumah Dinas Wakil Wali Kota SawahluntoMasa jabatan5 tahun, sesudahnya dapat dipilih kembali sekaliDibentuk2003Pejabat pertamaFauzi HasanSitus webwww.sawahluntokota.go.idWakil Wali Kota Sawahlunto adalah politisi yang dipilih bersama Wali Kota Sawahlunto untuk membantu tugas Wali kota dalam mengatur dan mengelola Pemerintahan Kota Sawahlunto, sebagai bagian dari sistem penyelenggaraan pem...
Officially mandated mission of the United Nations in Kosovo This article is about United Nations mission. For the history of Kosovo during United Nations aministration, see United Nations Administered Kosovo. United Nations Interim Administration Mission in KosovoMisioni i Administratës së Përkohshme të Kombeve të Bashkuara në Kosovë (Albanian)Привремена административна мисија Уједињених нација на Косову (Serbian)UNMIK Fl...
Elections for the 5th U.S. Congress 1796 United States elections← 1794 1795 1796 1797 1798 → Presidential election yearIncumbent presidentGeorge Washington (Independent)Next Congress5thPresidential electionPartisan controlFederalist gainElectoral voteJohn Adams (F)71Thomas Jefferson (DR)681796 pr...
Football player and manager (1924–2011) Yosef Merimovich Personal informationDate of birth (1924-07-24)24 July 1924Place of birth Margo, Cyprus[1]Date of death 5 May 2011(2011-05-05) (aged 86)Place of death IsraelPosition(s) ForwardYouth career Maccabi Tel AvivSenior career*Years Team Apps (Gls)1940–1958 Maccabi Tel Aviv 74 (67)International career1948–1956 Israel 14 (4)Managerial career1958–1960 Maccabi Tel Aviv1964–1965 Israel1966–1968 Hapoel Tel Aviv1968–1969 Mac...
ألكسندر ليابونوف (بالروسية: Александр Михайлович Ляпунов) معلومات شخصية الميلاد 6 يونيو 1857 [1][2][3] ياروسلافل[4] الوفاة 3 نوفمبر 1918 (61 سنة) [5][1][2] أوديسا[4] سبب الوفاة إصابة بعيار ناري مواطنة الإمبراطورية الروسية عضو ...
Nokia Lumia 1020The 41-megapixel Lumia 1020 equipped with the optional PD-95G camera gripMerekNokiaPembuatNokiaSeriLumiaJaringan2.5G GSM/GPRS/EDGE – 850, 900, 1800, 1900 MHz 3G UMTS/DC-HSPA+ – 850, 900, 1900, 2100 MHz 4G LTE Rel. 8 (UE Cat 3) – 700, 800, 900, 1800, 2100, 2600 MHzRilis pertama26 Juli 2013; 10 tahun lalu (2013-07-26)Ketersediaan menurut negara26 Juli 2013; 10 tahun lalu (2013-07-26) (USA) 15 Agustus 2013; 10 tahun lalu (2013-08-15) (China) Se...
Некоторые виды энергоносителей (солнечное излучение, падающая вода и ветер представлены символами). В энергетике энергоносители осуществляют связь с первичными источниками энергии. Энергоноси́тель (англ. — energy carrier, лат. — industria carrier) — вид ресурсов природного и �...
Protein-coding gene in the species Homo sapiens SERPINA3Available structuresPDBOrtholog search: PDBe RCSB List of PDB id codes1AS4, 1QMN, 2ACH, 3CAA, 3DLW, 4CAAIdentifiersAliasesSERPINA3, AACT, ACT, GIG24, GIG25, serpin family A member 3External IDsOMIM: 107280; MGI: 98377; HomoloGene: 111129; GeneCards: SERPINA3; OMA:SERPINA3 - orthologsGene location (Human)Chr.Chromosome 14 (human)[1]Band14q32.13Start94,612,384 bp[1]End94,624,055 bp[1]Gene location (Mouse)Chr.Chromos...
TuriKapanewonNegara IndonesiaProvinsiDaerah Istimewa YogyakartaKabupatenSlemanPemerintahan • PanewuSiti Anggraeni Susila Prapti, SH, MMPopulasi • Total34,950 jiwa 9,932 KK jiwaKode Kemendagri34.04.15 Kode BPS3404150 Luas43.09 km²Desa/kelurahan4 Turi (bahasa Jawa: ꦠꦸꦫꦶ, translit. Turi) adalah sebuah kapanewon di Kabupaten Sleman, Provinsi Daerah Istimewa Yogyakarta, Indonesia. Kapanewon Turi merupakan wilayan kecamatan paling utara di Kabupaten Sl...
Retail outlet for cannabis and tobacco products Not to be confused with smart shop. For the film, see HeadShop. This article is about the type of retail outlet. For information about the psychedelic rock band, see The Head Shop. The Nirvana head shop in Dublin, Ireland. A large image of a cannabis leaf adorns the front of the store. Bongs and pipes on display at a typical head shop The Electric Fetus head shop in Saint Cloud, Minnesota (closed) Part of a series onCannabis ArtsCulture 420 (cha...
Peta Postleitzahl Jerman untuk dua digit pertama Kodepos di Jerman, Postleitzahl (bentuk jamak: Postleitzahlen, disingkat menjadi PLZ), mencakup lima digit, yang menandai area lebih luas (dua digit pertama), dan distrik pos (tiga digit terakhir). Sistem tersebut diperkenalkan pada tanggal 1 Juli 1993. Sebelum penyatuan Jerman, kedua negara, Republik Federal Jerman (RFJ) dan Republik Demokratik Jerman (RDJ) menggunakan kode empat digit. Dibawah perjanjian transisi setelah penyatuan, antara 198...
Australia international rugby league footballer Joel MonaghanPersonal informationBorn (1982-04-22) 22 April 1982 (age 42)[1]Canberra, Australian Capital Territory, AustraliaPlaying informationHeight189 cm (6 ft 2 in)[1]Weight101 kg (15 st 13 lb)[1]PositionWing, Centre Club Years Team Pld T G FG P 2001–04 Canberra Raiders 66 39 5 0 160 2005–07 Sydney Roosters 44 23 0 0 92 2008–10 Canberra Raiders 55 28 1 0 114 2011–15 Warri...
English Protestants executed during the English Reformation This article is about the Protestant martyrs. For the Catholic martyrs, see List of Catholic martyrs of the English Reformation. This is a dynamic list and may never be able to satisfy particular standards for completeness. You can help by adding missing items with reliable sources. Plaque in Maidstone, Kent, commemorating those burnt nearby Protestants were executed in England under heresy laws during the reigns of Henry VIII (1509�...