Տարբերություն ցուցիչի և զանգվածի միջև

Տարբերություն ցուցիչի և զանգվածի միջև
Տարբերություն ցուցիչի և զանգվածի միջև

Video: Տարբերություն ցուցիչի և զանգվածի միջև

Video: Տարբերություն ցուցիչի և զանգվածի միջև
Video: Տրանսգենդերը ձեր ճշմարտությունն է. բանավեճ քահանայի և Ալեն Սիմոնյանի միջև 2024, Նոյեմբեր
Anonim

Ցուցիչ ընդդեմ զանգված

Ցուցիչը տվյալների տեսակ է, որը հղում է կատարում հիշողության վայրին (այսինքն՝ ցուցիչի փոփոխականը պահում է հիշողության վայրի հասցեն, որտեղ որոշ տվյալներ են պահվում): Զանգվածներն ամենից հաճախ օգտագործվող տվյալների կառուցվածքն են տարրերի հավաքածուն պահելու համար: Ծրագրավորման լեզուներից շատերը հնարավորություն են տալիս հեշտությամբ հայտարարել զանգվածներ և մուտքի տարրեր զանգվածներում:

Ի՞նչ է ցուցիչը:

Ցուցիչը տվյալների տեսակ է, որը պահում է հիշողության վայրի հասցեն, որտեղ որոշ տվյալներ են պահվում: Այլ կերպ ասած, ցուցիչը հղում է կատարում հիշողության վայրին: Հիշողության վայրում պահվող տվյալներին մուտք գործելը, որին մատնանշում է ցուցիչը, կոչվում է ապահղում:Կրկնվող գործողություններ կատարելիս, ինչպիսիք են ծառերի/տողերի անցումը, աղյուսակների որոնումները և այլն, ցուցիչները կբարելավեն կատարողականությունը: Դա պայմանավորված է նրանով, որ ցուցիչների անջատումն ու պատճենումն ավելի էժան է, քան ցուցիչների կողմից նշված տվյալների իրական պատճենումն ու մուտքը: Զեղծ ցուցիչը ցուցիչ է, որը ոչ մի բանի վրա չի մատնանշում: Java-ում զրոյական ցուցիչ մուտք գործելը կառաջացնի բացառություն, որը կոչվում է NullPointerException:

Ի՞նչ է զանգվածը:

Ցուցադրված է նկար 1-ում, կոդի կտոր է, որը սովորաբար օգտագործվում է զանգվածին արժեքներ հայտարարելու և վերագրելու համար: Նկար 2-ում պատկերված է, թե ինչպիսի տեսք կունենա զանգվածը հիշողության մեջ:

int արժեքներ[5];

արժեքներ[0]=100;

արժեքներ[1]=101;

արժեքներ[2]=102;

արժեքներ[3]=103;

արժեքներ[4]=104;

Նկար 1. Զանգվածին արժեքներ հայտարարելու և վերագրելու ծածկագիր

100 101 102 103 104
Ինդեքս՝ 0 1 2 3 4

Նկար 2. Հիշողության մեջ պահվող զանգված

Վերևի կոդը սահմանում է զանգված, որը կարող է պահել 5 ամբողջ թվեր, և դրանք հասանելի են՝ օգտագործելով 0-ից 4 ինդեքսները: Զանգվածի կարևոր հատկությունն այն է, որ ամբողջ զանգվածը հատկացվում է որպես հիշողության մեկ բլոկի, և յուրաքանչյուր տարր ստանում է իր սեփական տարածք զանգվածում: Երբ զանգվածը սահմանվում է, դրա չափը ֆիքսվում է: Այսպիսով, եթե կազմման պահին վստահ չեք զանգվածի չափի մասին, դուք պետք է սահմանեք բավականաչափ մեծ զանգված՝ ապահով կողմում գտնվելու համար: Բայց, շատ դեպքերում, մենք իրականում պատրաստվում ենք օգտագործել ավելի քիչ թվով տարրեր, քան մենք հատկացրել ենք: Այսպիսով, զգալի քանակությամբ հիշողություն իրականում վատնում է:Մյուս կողմից, եթե «բավականաչափ մեծ զանգվածը» իրականում բավականաչափ մեծ չէ, ծրագիրը կխափանվի:

Ո՞րն է տարբերությունը ցուցիչների և զանգվածների միջև:

Ցուցիչը տվյալների տեսակ է, որը պահում է հիշողության վայրի հասցեն, որտեղ պահվում են որոշ տվյալներ, մինչդեռ զանգվածները ամենահաճախ օգտագործվող տվյալների կառուցվածքն են տարրերի հավաքածու պահելու համար: C ծրագրավորման լեզվում զանգվածների ինդեքսավորումն իրականացվում է ցուցիչի թվաբանության միջոցով (այսինքն x զանգվածի i-րդ տարրը համարժեք կլինի (x+i)): Հետևաբար, C-ում ցուցիչների մի շարք, որոնք մատնանշում են մի շարք հիշողության վայրեր, որոնք հաջորդական են, կարելի է դիտարկել որպես զանգված: Ավելին, կա տարբերություն, թե ինչպես է sizeof օպերատորը գործում ցուցիչների և զանգվածների վրա: Երբ կիրառվում է զանգվածի վրա, sizeof օպերատորը կվերադարձնի զանգվածի ամբողջ չափը, մինչդեռ երբ կիրառվում է ցուցիչի վրա, այն կվերադարձնի միայն ցուցիչի չափը:

Խորհուրդ ենք տալիս: